C#winform三层架构中如何实现将gridcontrol批量插入数据到数据库?
2个回答
展开全部
//将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;
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询