C#winform三层架构中如何实现将gridcontrol批量插入数据到数据库?

2024-12-03 19:47:34
推荐回答(2个)
回答1:

//将dgvStudent数据操作更新到数据库
private Boolean dbUpdate()
{
string strSql = "select ID as 学号,name as 姓名, class as 班级 from tbl_Student";
//新建一个用于将dgvStudent数据操作更新到数据库的内存表
DataTable dtUpdate= new DataTable();
//新建一个用于更新dgvStudent数据操作的内存表
//利用da初始化dtUpdate的表结构(和数据)
SqlDataAdapter da = new SqlDataAdapter(strSql, sqlCon);
da.Fill(dtUpdate);
//初始化的数据需清除,以存放更新后的dgvStudent数据
dtUpdate.Rows.Clear();
//再建一个内存表,用于将更新后的dgvStudent数据逐条读取出来存入更新内存表中
DataTable dtShow = new DataTable();
//逐条读取出来存入更新内存表中
dtShow = (DataTable) dgvStudent.DataSource;
for (int i = 0; i < dtShow.Rows.Count; i++)
{
dtUpdate.ImportRow(dtShow.Rows[i]);
}
try
{
this.sqlCon.Open();
//使对DataSet所做的更改与关联的SQL Server数据库相协调
SqlCommandBuilder sqlCbld;
sqlCbld = new SqlCommandBuilder(da);
//通过该da将更新后的dgvStudent数据(即已复制的dtUpdate)更新到数据库
da.Update(dtUpdate);
sqlCon.Close();
}
catch(Exception ex)
{
MessageBox.Show("数据库操作失败:" + ex.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}
dtUpdate.AcceptChanges();
return true;
}
  

回答2:

遍历所有行,逐行添加