直接在DataGridView中添加修改数据的问题
当DataGridView绑定数据库后,直接在DataGridView中修改和添加数据多条数据,点击一个按钮后直接保存到数据库。如图所示,可以直接在表中修改数据,或者可以...
当DataGridView绑定数据库后,直接在DataGridView中修改和添加数据多条数据,点击一个按钮后直接保存到数据库。如图所示,可以直接在表中修改数据,或者可以添加一行数据,然后点击Save后保存到数据库。注意:这里可以修改多行数据和添加多行数据,然后只点击save后保存到数据库。求高手解答!最后有代码
展开
3个回答
展开全部
哈哈,我昨天刚刚做好这个,这是我们C#数据库设计的一部分要求。
说明下我用的是VS2005的C#和SQL 2005。不知道你是不是想用datagridview实现读取数据表和批量修改或添加,还有删除当前行。
首先用datagridview读取数据表
private void 商店一_员工_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection("Data Source=ASUS-PC\\SQLEXPRESS;Initial Catalog=SUPERMARKET;Integrated Security=True;");
sqlDa = new SqlDataAdapter("SELECT * FROM dbo.商店一_员工", sqlConn);
sqlDs = new DataSet();
sqlDa.Fill(sqlDs, "dbo.商店一_员工");
dataGridView1.DataSource = sqlDs.Tables["dbo.商店一_员工"];
//然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
}
第一个按钮完成修改更新事件:
private void button1_Click(object sender, EventArgs e)
{
if (sqlDs.HasChanges())
{
try
{
sqlDa.Update(sqlDs.Tables["dbo.商店一_员工"]);
sqlDs.Tables["dbo.商店一_员工"].AcceptChanges();
MessageBox.Show("更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
第二个按钮完成删除当前行
private void button2_Click(object sender, EventArgs e)
{
//删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用保存按钮保存删除操作
button1.PerformClick();
}
PS:
using System.Data.SqlClient;
using System.Data;
SqlConnection sqlConn;
SqlDataAdapter sqlDa;
DataSet sqlDs;
还有数据库里表要设置主键
说明下我用的是VS2005的C#和SQL 2005。不知道你是不是想用datagridview实现读取数据表和批量修改或添加,还有删除当前行。
首先用datagridview读取数据表
private void 商店一_员工_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection("Data Source=ASUS-PC\\SQLEXPRESS;Initial Catalog=SUPERMARKET;Integrated Security=True;");
sqlDa = new SqlDataAdapter("SELECT * FROM dbo.商店一_员工", sqlConn);
sqlDs = new DataSet();
sqlDa.Fill(sqlDs, "dbo.商店一_员工");
dataGridView1.DataSource = sqlDs.Tables["dbo.商店一_员工"];
//然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
}
第一个按钮完成修改更新事件:
private void button1_Click(object sender, EventArgs e)
{
if (sqlDs.HasChanges())
{
try
{
sqlDa.Update(sqlDs.Tables["dbo.商店一_员工"]);
sqlDs.Tables["dbo.商店一_员工"].AcceptChanges();
MessageBox.Show("更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
第二个按钮完成删除当前行
private void button2_Click(object sender, EventArgs e)
{
//删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用保存按钮保存删除操作
button1.PerformClick();
}
PS:
using System.Data.SqlClient;
using System.Data;
SqlConnection sqlConn;
SqlDataAdapter sqlDa;
DataSet sqlDs;
还有数据库里表要设置主键
参考资料: CSDN论坛
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询