PDA

View Full Version : دیتا بایند دو جانبه



faramarz_s
یک شنبه 03 اسفند 1382, 22:03 عصر
من پس از نصب FTB حالا برای شبیه سازی مبحث ویرایش فروم برنامه زیر را آماده کرده ام.
مشکل من این هستش که TBinder را زمانی که در Page_Load صدا می زنم خب ویرایش هم
صورت گرفته و کاربر داده ای را که می خواهد برای ویرایش به دیتا بیس بفرستد می فرستد اما چون در Page_Load متد TBinder صدا زده شده بنابراین مقادیر ویرایش شده به دیتا بیس ارسال نمی شود بلکه همان مقادیر سابق در فیلد خاص ارسال گردیده و هدف ویرایش محقق نمی شه!

private void Page_Load(object sender, System.EventArgs e)
{
//TBinder();
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.FTB.Init += new System.EventHandler(this.FTB_Init);
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
//DataBinder.Eval(ds2, "Tables[tblNews].DefaultView.[0].finalText")
void TBinder()
{
SqlConnection myConnection = new
SqlConnection("server=(local);uid=sa;pwd=;database=test" );
string mySelectQuery = "SELECT finalText FROM tblNews where NewsId=1";//where NewsId=1
//SqlConnection myConnection = new SqlConnection(myConnString);
SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
myConnection.Open();
SqlDataReader myReader;
myReader = myCommand.ExecuteReader();
// Always call Read before accessing data.
while (myReader.Read())
{
//FTB.DataBind(); >?
//FTB.Text=myReader.ToString(); Get ::System.Data.SqlClient.SqlDataReader >False
FTB.Text=myReader.GetSqlString(0).ToString(); //Get ::Rattlesnake Canyon Grocery >True
}
// always call Close when done reading.
myReader.Close();
// Close the connection when done with it.
myConnection.Close();



/*string strCon = ConfigurationSettings.AppSettings["ConnStr"];
SqlConnection wg = new SqlConnection(strCon);

SqlDataAdapter dtAdap1 = new
SqlDataAdapter("select finalText from tblNews",wg);

//DataSet ds2 = new DataSet();
dtAdap1.Fill(ds2, "tblTextInfo");
FTB.DataBind();*/
}

private void Button1_Click(object sender, System.EventArgs e)
{
try
{

//string strCon = ConfigurationSettings.AppSettings["ConnStr"];
SqlConnection conn = new
SqlConnection("server=(local);uid=sa;pwd=;database=test" );
//SqlConnection conn = new SqlConnection(strCon);

// Prepare the command text
String strCmd = "UPDATE tblNews SET finalText =@body where NewsID=1";//Error when where NewsID=0
//String strCmd = "UPDATE tblTextInfo SET body = N'@body'"
//" WHERE subject = @subject";


SqlCommand objcmd = new SqlCommand(strCmd, conn);

SqlParameter paramsubject1 = new SqlParameter(
"@body", SqlDbType.NVarChar , 3000);
paramsubject1.Value = FTB.Text.ToString();
//TextBox1.Text.ToString();
objcmd.Parameters.Add(paramsubject1);

/*SqlParameter parampost = new SqlParameter(
"@postdate", SqlDbType.Char , 10);
parampost.Value = TextBox2.Text.ToString();
//TextBox1.Text.ToString();
objcmd.Parameters.Add(parampost);

SqlParameter paramsubject = new SqlParameter(
"@subject", SqlDbType.NVarChar , 250);
paramsubject.Value = DropDownList1.SelectedValue.ToString();
objcmd.Parameters.Add(paramsubject);
*/
conn.Open();
objcmd.ExecuteNonQuery();
conn.Close();
//Server.Transfer("WebForm2.aspx");
Response.Redirect("WebForm2.aspx");
Label1.Text="متن مورد نظر با موفقیت تغییر یافت";

//TBinder();

}
catch (Exception e1)
{
Label1.Text= "An Error Occure "+e1.Message.ToString();
}

}

private void FTB_Init(object sender, System.EventArgs e)
{
TBinder();
}
}
}
می خواهم در عین حال که مقادیر موجود قبلی در پست ارسال شده نمایش داده شود پس از فشردن کلید آپدیت بدون مشکل انجام شود.
تشکر

Vahid_Nasiri
یک شنبه 03 اسفند 1382, 22:17 عصر
بله!
شما باید در page_load این مورد را چک کنید تا مشکل حل شود:
Page.IsPostBack :wink:
این مورد را هیچ وقت فراموش نکنید.

faramarz_s
چهارشنبه 06 اسفند 1382, 17:18 عصر
اقا اگر نمی نویسم تشکر بی ادبی نباشه اما می دونم روزی 10 بار باید پست تشکر آمیز داشته باشم.شاید هم باید تمپلیتش را آماده کنم!! :oops: :oops: :lol: :قهقهه:

Vahid_Nasiri
چهارشنبه 06 اسفند 1382, 17:46 عصر
:flower: