datagridview添加新行到数据库 我想先把大量数据一行一行输入到datagridview控件的表格里上,然后再通过一个按钮button提交到数据库中,我的思路是建一个dataset,把数据添进去,然后用DataAdapter 提交可是我不知道怎么把Datagridview的数据批量增加到dataset对象里 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把DataSet 绑定到DataGridview上, dataset ds =new dataset();datatable dt=new datatable();ds.tables.add(dt);DataRow dr = ds.Tables[0].NewRow(); dr["列名"] = "ss";//可以从DataGridview取数据 dr["列名2"]="hh";//可以从DataGridview取数据 ds.Tables[0].Rows.insertAT(dr,插入的位置);//Add方法也可以用! adapter.Update(ds);仅供参考! 楼上的我没看明白 ,,你是不是一次只能添加一行,或者每要增加一行都要手动写一个DataRow对象增加到DataTable里??我要的是批量增加 那就直接读取文件到DataGridview中吧!然后保存,总不能一个个输吧! 在datagridview里数据就是一个一个输进去的啊,,我要做的就是把datagridview 里的数据全部填充到dataset对象里,然后批量更新啊希望各位大佬帮忙看看 直接弄到dataset里,然后绑定到表格上显示不行吗?想更新就更新这样好象是比较合理的吧。 自己搞定了,,,,发个代码private void btAdd_Click(object sender, EventArgs e) { string CommandText = "select id,name from tb where 1=2"; string CommandText1 = "select id as '编号',name as '姓名' from tb where 1=2"; DataSet ds = new DataSet(); DataTable table = new DataTable(); SqlConnection sqlcon = new SqlConnection(strConn); SqlDataAdapter sqldr = new SqlDataAdapter(CommandText, sqlcon); //得到一张与数据库中指定表相当结构的空表 sqldr.Fill(table); if (table== null) { MessageBox.Show("错误:数据连接异常!"); return; } //数据有效性验证 for (int i = 0; i < dg.Rows.Count - 1; i++) { for (int j = i + 1; j < dg.Rows.Count - 1; j++) { if (dg.Rows[i].Cells[0].Value.ToString() == dg.Rows[j].Cells[0].Value.ToString()) { MessageBox.Show("编号不允许重复:请修改"+(i+1)+"行与"+(j+1)+"行编号.","错误"); return; } } } //采集数据 if (dg.Rows.Count > 1) { for (int i = 0; i < dg.Rows.Count-1; i++) { DataRow dw = table.NewRow(); dw["id"] = dg.Rows[i].Cells[0].Value.ToString().Trim(); dw["name"] = dg.Rows[i].Cells[1].Value.ToString().Trim(); table.Rows.Add(dw); } } else { MessageBox.Show("没有数据","提示"); return; } SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqldr); sqlcb.QuotePrefix = "["; //保留在查询语句中出现的[ sqlcb.QuoteSuffix = "]"; //保留在查询语句中出现的] sqldr.InsertCommand = sqlcb.GetInsertCommand(); try { sqldr.Update(table); MessageBox.Show("保存成功"); //恢复表格开始的样子 sqldr = new SqlDataAdapter(CommandText1,sqlcon); sqldr.Fill(ds); dg.DataSource = ds.Tables[0].DefaultView; } catch (Exception err) { MessageBox.Show(" 错误:" + err.Message,"错误"); } } C# picturebox 图片显示慢,求解决 .net C# 查找csv文件里是否有需要的字符串 抓取网页 ▲▲▲▲短信猫 群发短信问题 程序打开多个Word文档(进程),无法正常关闭!! 新人求助:两树控件之间画线 请教关于Socket连接问题 急急急!C#的安装问题。 谁有C#2002光盘 七张的? 请问在引用名字空间时何时用using何时用imports c#中如何在一个进程中获取另一个进程的实际运行时间(去除该进程的休眠时间) <asp:button 错误......
datatable dt=new datatable();
ds.tables.add(dt);
DataRow dr = ds.Tables[0].NewRow();
dr["列名"] = "ss";//可以从DataGridview取数据
dr["列名2"]="hh";//可以从DataGridview取数据
ds.Tables[0].Rows.insertAT(dr,插入的位置);//Add方法也可以用!
adapter.Update(ds);
仅供参考!
我要的是批量增加
希望各位大佬帮忙看看
想更新就更新
这样好象是比较合理的吧。
{
string CommandText = "select id,name from tb where 1=2";
string CommandText1 = "select id as '编号',name as '姓名' from tb where 1=2";
DataSet ds = new DataSet();
DataTable table = new DataTable();
SqlConnection sqlcon = new SqlConnection(strConn);
SqlDataAdapter sqldr = new SqlDataAdapter(CommandText, sqlcon);
//得到一张与数据库中指定表相当结构的空表
sqldr.Fill(table);
if (table== null)
{
MessageBox.Show("错误:数据连接异常!");
return;
}
//数据有效性验证
for (int i = 0; i < dg.Rows.Count - 1; i++)
{
for (int j = i + 1; j < dg.Rows.Count - 1; j++)
{
if (dg.Rows[i].Cells[0].Value.ToString() == dg.Rows[j].Cells[0].Value.ToString())
{
MessageBox.Show("编号不允许重复:请修改"+(i+1)+"行与"+(j+1)+"行编号.","错误");
return;
}
}
}
//采集数据
if (dg.Rows.Count > 1)
{
for (int i = 0; i < dg.Rows.Count-1; i++)
{
DataRow dw = table.NewRow();
dw["id"] = dg.Rows[i].Cells[0].Value.ToString().Trim();
dw["name"] = dg.Rows[i].Cells[1].Value.ToString().Trim();
table.Rows.Add(dw);
}
}
else
{
MessageBox.Show("没有数据","提示");
return;
}
SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqldr);
sqlcb.QuotePrefix = "["; //保留在查询语句中出现的[
sqlcb.QuoteSuffix = "]"; //保留在查询语句中出现的]
sqldr.InsertCommand = sqlcb.GetInsertCommand();
try
{
sqldr.Update(table);
MessageBox.Show("保存成功");
//恢复表格开始的样子
sqldr = new SqlDataAdapter(CommandText1,sqlcon);
sqldr.Fill(ds);
dg.DataSource = ds.Tables[0].DefaultView;
}
catch (Exception err)
{
MessageBox.Show(" 错误:" + err.Message,"错误");
}
}