本帖最后由 wangvxhong 于 2011-10-13 10:46:46 编辑

解决方案 »

  1.   

    如果你没有直接绑定数据源,想直接生产SQL的话,datagridview里面的列名gColumn.Name 这个要保证跟数据库的列名一致,代码你试下            StringBuilder strb = new StringBuilder();
                StringBuilder strHead = new StringBuilder();            //insert into tablename(col1,col2....) value(value1,value2...);
                strHead.Append("Insert into Music(");
                foreach (DataGridViewColumn gColumn in dataGridView1.Columns)
                {
                    strHead.Append("[" + gColumn.Name + "]");//列名
                    if (gColumn.Index < dataGridView1.Columns.Count)
                        strHead.Append(",");
                }
                strHead.Append(") values(");            foreach (DataGridViewRow gr in dataGridView1.Rows)
                {//组SQL                strb.Append(strHead);
                    for (int i = 0; i < gr.Cells.Count;i++)
                    {
                        DataGridViewCell gc = gr.Cells[i];
                        string strValue = gc.Value != null ? gc.Value.ToString() : string.Empty;
                        strb.Append("'" + gc.Value.ToString() + "'");//值
                        if (i < gr.Cells.Count)
                            strb.Append(",");
                    }
                    strb.Append(");");
                }            
       
      

  2.   

    你这样把本来简单的数据弄负责,何苦:一般的情况,DataTable绑定datagridview,datagridview的更新变化都会反应到DataTable,用SqlDataAdapter 来更新数据:
              adapter.Update(customers);