I was stuck when update database using SqlDataAdapter. I have several textboxes in my webform1. When wepform1 is loaded, they will display user's information. The user can only input content in two textboxes. When user clicks the update button, I hope to update this record in SQL Server 2000 database. However, the program didn't work. There was no error message reported but when I stepped into the code, I found out that dataadapter's update method didn't succeed. I got 0 rows affected. Can I get some advice from someone ?
Here is the code:
string StrUpdateCmd = "Update Table1 Set Hphone = @.Hphone, Cphone = @.Cphone, Team = @.Team Where emailname =@.emailname ";
SqlDataAdapter UpdateDa = new SqlDataAdapter("Select * from Table1",SqlConnection1);
UpdateDa.UpdateCommand = new SqlCommand(StrUpdateCmd, SqlConnection1);
//Add parameters of update command.
SqlParameter prm1 = UpdateDa.UpdateCommand.Parameters.Add("@.Hphone",SqlDbType.NVarChar, 16);
prm1.Value = txtHphone.Text ;
SqlParameter prm2 = UpdateDa.UpdateCommand.Parameters.Add("@.Cphone",SqlDbType.NVarChar, 16);
prm2.Value = txtCphone.Text ;
SqlParameter prm3 = UpdateDa.UpdateCommand.Parameters.Add("@.Team",SqlDbType.NVarChar, 16);
prm3.Value = this.DropDownList1.SelectedItem.Value ;
SqlParameter prm4 = UpdateDa.UpdateCommand.Parameters.Add("@.emailname",SqlDbType.NVarChar, 50);
prm4.Value = txtEmail.Text;
try
{
DataSet dataset2 = new DataSet();
//Open database connection.
SqlConnection1.Open();
dataset2.Clear();
UpdateDa.Fill(dataset2, "Table1");
this.DataGrid1.DataSource = dataset2.Tables[0] ;
DataGrid1.DataBind ();
//Update database
int ret =UpdateDa.Update(dataset2,"Table1");
if( ret == 1 )
{
ShowMessage("Update succeed!");
}
else
{
ShowMessage("There is an error in updating ");
}
UpdateDa.Fill(dataset2);
//Show data after update.
this.DataGrid1.DataSource = dataset2;
DataGrid1.DataBind ();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConnection1.Close();
}In your Page_Load event handler, do you only bind from the database when IsPostback==false?
No comments:
Post a Comment