日期:2014-05-18  浏览次数:20887 次

C# 中DataGridView中值修改如何反映到数据库
C# 中DataGridView中值修改如何反映到数据库
我从数据库中读取了一个表的值
DataTable table;
table = FormOperate.readfromsqlsome("MaterialParaBro", "ParameterName,ParameterValue,ParameterUnit,Description", "MaterialNameCN", Value2);
dataGridView1.DataSource = table.DefaultView;
现在我修改dataGridView1中的某几个值,怎么做才能让数据库中对应的值也更新到和修改后的值一样
删除dataGridView1中的某几行时,怎么做才能让数据库中对应的记录也删除

------解决方案--------------------
写一个数据库修改方法,要修改的值作参数传进方法
update 表名 set 所有列名=对应的值 where 主键
对应的Command方法

winform用datagridview.rows[].cells[].value.ToString()去读取datagridview单元格的值,然后一一对应调用update方法就可以了。

删除sql语句写delete就可以了方法差不多的

------解决方案--------------------
很简单,使用SqlDataAdapter就行了。
修改完成之后直接调用SqlDataAdapter.Update()就OK了。
可以配合使用SqlCommandBuilder自动为你创建更新和删除的SQL语句。
------解决方案--------------------
使用SqlCommandBuilder就可以直接将你DataGridView中的数据同步到数据库中的、
不过这是人家写好的东西、我不怎么喜欢、一直都是自己写、
给段代码你参考下吧!
C# code

                string person_ID = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString();
                string person_name = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[1].Value.ToString();
                string person_age = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[2].Value.ToString();
                string person_sex = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[3].Value.ToString();
//然后将数据更新到数据库、
                SqlConnection coon = new SqlConnection(connectionstring);
                coon.Open();
                SqlCommand cmd = new SqlCommand("update 酒店人员 set 姓名 =@name, 年龄 =@age, 性别 =@sex where 工作编号 =@id,coon);
                cmd.Parameters.AddWithValue("@name",person_name );
                cmd.Parameters.AddWithValue("@age",person_age );
                cmd.Parameters.AddWithValue("@sex",person_sex );
                cmd.Parameters.AddWithValue("@id",person_ID);
                SqlDataReader dr = cmd.ExecuteReader();
                coon.Close();
                MessageBox.Show("修改数据成功!");

------解决方案--------------------
插入行:
C# code

string insertStr = "insert into 学生信息(学号,姓名,性别,出生日期,民族,所属班级,家庭地址) values ('','','','','','','')";
            SqlCommand insert_com = new SqlCommand(insertStr, conn);
            if (insert_com.ExecuteNonQuery() > 0)
            {
                MessageBox.Show("插入新数据成功","成功提示");
            }