我想在 表格里面直接修改数据
dataGridView1.SelectedRows[i].Cells[j].ToString();
int i=dataGridView1.CurrentRow.Index;
int j= dataGridView1.ColumnCount;
这样子能获取到修改的单元格的行和列吧?!然后 我怎么写 sql语句啊  update 表名 set 列名(怎么获取到列名)=修改值 where 列名=某值怎么获取到列名啊?

解决方案 »

  1.   

    获取列表中的列值 
    dataGridView1.CurrentRow.cell【列名】.value; 列值就会获取到示例代码:
    改变事件
    private   void   dgvNote_CellFormatting(object   sender,   DataGridViewCellFormattingEventArgs e)

       if   (this.dgvNote.Columns[e.ColumnIndex].Name== "STATUS ")
            {
                if   (object.Equals(e.Value,   0))  
                     e.Value   =   "未查看 ";
                else   if   (object.Equals(e.Value,   1))  
                     e.Value   =   "已查看 ";
             }

      

  2.   

    写回数据库时不是sql语句了,而是调用dataadpter的update方法。
      

  3.   

     private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
            {
                Class1 c1 = new Class1();
                //选定单元格的行的第一列的值
                string stuNum = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
                //选定单元格的值
                string _str=dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                //选定单元格的列名
                string _column =dataGridView1.Columns[e.ColumnIndex].HeaderText.ToString();
                string sql = "update 学生信息表 set "+_column+" ='"+_str+"'where 学号='"+stuNum+"'";
                int i;
                c1.aaa(sql, out  i);
                if (i > 0)
                {
                    MessageBox.Show("添加成功");
                }
            }
     class Class1
        {
            public void aaa(string i,out int p)
            {
                string str ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=学生信息管理系统.accdb";
                OleDbConnection conn=new OleDbConnection (str);
                OleDbCommand cmd=new OleDbCommand(i,conn);
                conn.Open();
                p=cmd.ExecuteNonQuery();
                conn.Close();
            }
         }谢谢各位啊  我用一种和笨笨的方法弄出来了