我这有个datagridview  是通过.csv文件导入的 在界面上显示出来的  现在想把datagridview  上的数据更新到数据库中对应的数据库表中,要可以添加新的数据,也可以对已存在的数据进行修改,按钮点击后,进行更新导入操作。datagridview已转换成datatable了 然后我用adapter的方法update();结果只能添加 insert into的功能,更新update set没有,直接就报错是不能重复插入。代码如下,不知该怎么样写才可以update 。另外还有没有其他方法能实现datagridview数据跟新到数据库中?谢谢各位!!研究了一天没有结果 急死了 !就是只能insert无法修改 最好贴出代码 谢谢啦!!!~~ 
private void btn_imp_Click(object sender, EventArgs e)                                             
  {                                                                                                  
                                                                                                     
      DataBaseAccess dba = new DataBaseAccess();                                                     
      String sql = "select *  from " + cbb_table.Text;                                               
      DataTable dt1 = new DataTable();                                                               
      dt1 = dba.GetDt(sql);                                                                          
                                                                                                     
      DataTable dt2 = new DataTable();                                                               
      dt2 = (DataTable)this.dataGridView1.DataSource;                                                
                                                                                                     
      if (cbb_table.Text == "")                                                                      
      {                                                                                              
          MessageBox.Show("请选择表");                                                               
      }                                                                                              
      else                                                                                           
      {                                                                                              
          string sqlConnectionString = "Data Source = 192.168.1.199;User ID=sa;PWD=1234;";           
     SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);                      
          SqlCommand sqlCommand = new SqlCommand("select * from " + cbb_table.Text , sqlConnection); 
         SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCommand);                                   
     SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(sqlAdap);//必须有                     
         sqlConnection.Open();                                                                      
     sqlAdap.Fill(table);                                                                       
                                                                                                     
     //表中必须存在主键,否则无法更新                                                           
     sqlAdap.Update(table);                                                                     
                                                                                                     
     sqlConnection.Close();                                                                     
                                                                                                     
                                                                                                     
          }                                                                                          
                                                                                                     
                                                                                                     
      }                                                                                              

解决方案 »

  1.   

    先判断表中有无记录,若有则修改若没有就插入
    我给你个例子
    public void SetProperty()
            {
                string sqlsc = "select  COUNT(FileName) from T_CADProperty where FileName=\'" + FileName + "\'";
                DataTable i = sqldb.ExecuteDataTable(sqlsc, null);
                if (Convert.ToInt32(i.Rows[0][0].ToString()) == 0)
                {
                    string str = "insert into T_CADProperty(FileName,ColorR,ColorG,ColorB,bRoot,Height,Width) values(\'" +
                                 FileName + "\',\'" + ColorR + "\',\'" + ColorG + "\',\'" + ColorB +
                                 "\',\'" + Height + "\',\'" + Width + "\')";
                    sqldb.ExecuteNonQuery(str, null);
                }
                else
                {
                    string str = "update T_CADProperty set FileName=\'" + FileName + "\',ColorR=\'" + ColorR +
                                 "\',ColorG=\'" + ColorG + "\',ColorB=\'" + ColorB + "\',Height=\'" +
                                 Height + "\',Width=\'" + Width + "\' where FileName=\'" + FileName + "\' ";
                    sqldb.ExecuteNonQuery(str, null);
                }
            }