如何将datagridview中的数据更新到其数据源的数据库中?
将数据库中的数据加载到datagridview1中,然后在datagridview1中对其做了一些修改。怎样才能将修改后的数据更新到原数据库中啊?...
将数据库中的数据加载到datagridview1中,然后在datagridview1中对其做了一些修改。怎样才能将修改后的数据更新到原数据库中啊?
展开
2个回答
展开全部
这个我做的课程设计有用到,是断开连接环境到SQL数据。
private void 商店一_商品_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection("Data Source=ASUS-PC\\SQLEXPRESS;Initial Catalog=SUPERMARKET;Integrated Security=True;");
/SqlConnection连接到本地服务器ASUS-PC,数据库SUPERMARKET,使用windows身份验证
sqlDa = new SqlDataAdapter("SELECT * FROM dbo.商店一_商品", sqlConn);
//Sql适配器以从表dbo.商店一_商品选择所有列作为命令,绑定到SqlConnection
sqlDs = new DataSet();//为数据集分配内存
sqlDa.Fill(sqlDs, "dbo.商店一_商品");//适配器填充到数据集中的表"dbo.商店一_商品"
dataGridView1.DataSource = sqlDs.Tables["dbo.商店一_商品"];
//dataGridView1以数据集中的表"dbo.商店一_商品"作为其数据源
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
//然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令
}
点button1批量更新到数据库:
private void button1_Click_1(object sender, EventArgs e)
{
if (sqlDs.HasChanges())//如果数据集因我们对datagridview的操作发生改变
{
try//捕获异常
{
sqlDa.Update(sqlDs.Tables["dbo.商店一_商品"]);//以数据集的"dbo.商店一_商品"表更新数据库
sqlDs.Tables["dbo.商店一_商品"].AcceptChanges();//接受对数据的修改
MessageBox.Show("更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);//弹出提示更新成功
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
//出现异常提示更新失败
}
}
}
button2删除当前行:
private void button2_Click_1(object sender, EventArgs e)
{ //删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用button1更新数据库的方法
button1.PerformClick();
}
private void 商店一_商品_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection("Data Source=ASUS-PC\\SQLEXPRESS;Initial Catalog=SUPERMARKET;Integrated Security=True;");
/SqlConnection连接到本地服务器ASUS-PC,数据库SUPERMARKET,使用windows身份验证
sqlDa = new SqlDataAdapter("SELECT * FROM dbo.商店一_商品", sqlConn);
//Sql适配器以从表dbo.商店一_商品选择所有列作为命令,绑定到SqlConnection
sqlDs = new DataSet();//为数据集分配内存
sqlDa.Fill(sqlDs, "dbo.商店一_商品");//适配器填充到数据集中的表"dbo.商店一_商品"
dataGridView1.DataSource = sqlDs.Tables["dbo.商店一_商品"];
//dataGridView1以数据集中的表"dbo.商店一_商品"作为其数据源
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
//然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令
}
点button1批量更新到数据库:
private void button1_Click_1(object sender, EventArgs e)
{
if (sqlDs.HasChanges())//如果数据集因我们对datagridview的操作发生改变
{
try//捕获异常
{
sqlDa.Update(sqlDs.Tables["dbo.商店一_商品"]);//以数据集的"dbo.商店一_商品"表更新数据库
sqlDs.Tables["dbo.商店一_商品"].AcceptChanges();//接受对数据的修改
MessageBox.Show("更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);//弹出提示更新成功
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
//出现异常提示更新失败
}
}
}
button2删除当前行:
private void button2_Click_1(object sender, EventArgs e)
{ //删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用button1更新数据库的方法
button1.PerformClick();
}
参考资料: CSDN 论坛
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询