datatable更新到mysql_DataTable修改后,如何更新数据库

DataTable中的数据可以修改多个后,同时更新到数据库,这样比较方便。下面是实现的代码:

DataTable table = new DataTable();//初始化一个DataTable对象

string sqlConnectionString = "Data Source=ComputerName-PC;Initial Catalog=charge_sys;User ID=sa;PWD=123456;";

SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);//连接数据库

SqlCommand sqlCommand = new SqlCommand("select * from testB", sqlConnection);

SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCommand);

SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(sqlAdap);//这句挺重要的,好像是批量更新的时候用

//DataSet dtst = new DataSet(); 用dataSet也可以完成,下面有对应实现的代码

sqlConnection.Open();

sqlAdap.Fill(table);

//table = dtst.Tables["testB"];

DataRow dr = table.Rows[0];//第一行

//dr.BeginEdit();

//dr.EndEdit(); 貌似这两句主要是数据绑定到控件的时候才用

for (int i = 0; i < table.Rows.Count; i++) //修改table中每一行的内容

{

dr = table.Rows[i];

dr["f"] = 3; //字段名为f

}

//testB表中必须存在主键,否则无法更新// ****** 这个很重要 *****

sqlAdap.Update(table);

//sqlAdap.Update(dtst, "testB");

sqlConnection.Close();

MessageBox.Show("aa");

下面是DataTable与dataGridView控件绑定,当dataGridView中的数据改变时,更新数据库的代码:

DataTable和dataGridView控件绑定代码:

private void Form1_Load(object sender, EventArgs e)

{

string sqlConnectionString = "Data Source=ComputerName-PC;Initial Catalog=charge_sys;User ID=sa;PWD=123456;";

SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);//初始化sqlconnection

DataTable table = new DataTable();

SqlDataAdapter sqlAdap = new SqlDataAdapter("select * from testB ", sqlConnection);

sqlConnection.Open();

sqlAdap.Fill(table);

sqlConnection.Close();

//将testB表中的数据显示在dataGridView中

this.dataGridView1.DataSource = table;

}

实现将dataGridView中的改动更新到数据库代码:

private void butUpdate_Click(object sender, EventArgs e)

{

DataTable table = new DataTable();

table = (DataTable)this.dataGridView1.DataSource;

string sqlConnectionString = "Data Source=WangHaitao-PC;Initial Catalog=charge_sys;User ID=sa;PWD=123456;";

SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);

SqlCommand sqlCommand = new SqlCommand("select * from testB", sqlConnection);

SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCommand);

SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(sqlAdap);//必须有

sqlConnection.Open();

sqlAdap.Fill(table);

//testB表中必须存在主键,否则无法更新

sqlAdap.Update(table);

sqlConnection.Close();

MessageBox.Show("aa");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值