2013-03-07 53 views
0

我想通过C#中的窗体按钮更新我的数据库。当我运行我将要显示的代码时,它不显示任何错误,但它不会更改数据库或数据网格中的数据。更新按钮不起作用

private void update_Click(object sender, EventArgs e) 
{ 
    SqlConnection NewCon = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\ASPNET\cd\cdcwk2\cddatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 
    SqlCommand cmd = new SqlCommand("UPDATE cdstock set cd_title='" + cdtext.Text + "', artist='" + artisttext.Text + "',genre='" + genretext.Text + "', rating=" + ratingtext.Text + ", cd_discription='" + distext.Text + "' where cd_id =" + idtext.Text + ";", NewCon); 
    MessageBox.Show("UPDATE cdstock set cd_title='" + cdtext.Text + "', artist='" + artisttext.Text + "',genre='" + genretext.Text + "', rating='" + ratingtext.Text + "', cd_discription='" + distext.Text + "' where cd_id ='" + idtext.Text + "'"); 

    NewCon.Open(); 

    cmd.ExecuteNonQuery(); 

    NewCon.Close(); 
    MessageBox.Show("Record Has Now Been UPDATED!!"); 

} 
+0

您是否尝试过手动运行显示的查询? – 2013-03-07 13:33:14

+0

您是否使用SQL Management Studio或其他SQL客户端运行生成的commang? – 2013-03-07 13:33:31

+1

'cmd.ExecuteNonQuery();'返回什么? – 2013-03-07 13:34:10

回答

0

嗨我发现了解决方案,它现在工作正常,谢谢你的时间。解决方案如下。

   String NewCon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\ASPNET\cd\cdcwk2\cddatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; 

     SqlConnection con = new SqlConnection(NewCon); 
     SqlCommand cmd = new SqlCommand(); 

     cmd.CommandText = "UPDATE cdstock set cd_title='" + cdtext.Text + "', artist='" + artisttext.Text + "',genre='" + genretext.Text + "', cd_discription='" + distext.Text + "', rating=" + ratingtext.Text + " where cd_id = " + dataGridView1.CurrentRow.Cells[0].Value; 
     cmd.Connection = con; 
     cmd.Connection.Open(); 

     cmd.ExecuteNonQuery(); 
     cmd.Connection.Close(); 

cddatabaseDataSet3.GetChanges(); this.cdstockTableAdapter.Fill(this.cddatabaseDataSet3.cdstock);

 MessageBox.Show("Record Has Now Been UPDATED!!");