在C#中从DataGridView更新数据库表

时间:2016-06-19 16:02:26

标签: c# mysql database datagridview gridviewrow

我正在尝试使用以下代码从DataGridView更新我的数据库行:

private void button2_Click(object sender, EventArgs e)
 {
     foreach (GridViewRow dr in dataGridView1.Rows)
     {
         string constring = "Data Source = localhost; port = 3306; username = root; password = 0159";
         string Query = "Update TopShineDB.Table1 set Time = '" + dr.Cells[0].Text + "', CarColorNumber = '" + dr.Cells[1].Text + "', Interior = '" + dr.Cells[2].Text + "', Exterior = '" + dr.Cells[3].Text + "', CPlastic = '" + dr.Cells[4].Text + "', MPlastic = '" + dr.Cells[5].Text + "', SPlastic = '" + dr.Cells[6].Text + "', PlasticB = '" + dr.Cells[7].Text + "', WashExt = '" + dr.Cells[8].Text + "', WashEng = '" + dr.Cells[9].Text + "', WashTrunk = '" + dr.Cells[10].Text + "', WashSeats = '" + dr.Cells[11].Text + "', SeatsRmv = '" + dr.Cells[12].Text + "', SeatsFit = '" + dr.Cells[13].Text + "', Notes = '" + dr.Cells[14].Text + "', where Time = '" + dr.Cells[0].Text + "' ;";  
         MySqlConnection conn = new MySqlConnection(constring);
         MySqlCommand command = new MySqlCommand(Query, conn);
         MySqlDataReader myReader;

         try
         {
             conn.Open();
             myReader = command.ExecuteReader();
             MessageBox.Show("Table Successfully Updated");
             while (myReader.Read())
             {

             }
         }
         catch (Exception ex)
         {
              MessageBox.Show(ex.Message);
         }
     }
 }

但我最终得到了这个错误:

{"Unable to cast object of type 'System.Windows.Forms.DataGridViewRow' to type 'System.Web.UI.WebControls.GridViewRow'."}

2 个答案:

答案 0 :(得分:0)

您正在进行DataReader并尝试更新。要更新,您需要executeNonQuery。 所以而不是:

  assert(min_on(mod2, 3, 2) == 2);

你需要

myReader = command.ExecuteReader();

以下是foreach循环中的代码如何看起来像

cmd.ExecuteNonQuery();

答案 1 :(得分:0)

它的foreach(DataGridViewRow ...不是foreach(GridViewRow ... 与msdn documentation .Rows属性一样:

  

获取DataGridViewRow对象的数组。

为了使用此更改进行编译,您需要在访问单元格值时使用.Value而不是.Text