dataGrid中的数据如何存入另一个表中?

junsheng 2004-12-03 01:03:08
在数据库查找到数据后mydatable=new DataTable()建一个表逐行添加,最后在dataGrid1.DataSource=mydatable;显示,现在要把这个查找结果的表填入到另一个数据库表中,查找了资料几乎都是讲用DataAdapter,dataSet进行填入的,如果只是简单生成一个表用dataGrid显示没有用到适配器和数据集,如何填入另一个表?或者使用适配器和数据集应如何改写?
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
junsheng 2004-12-08
  • 打赏
  • 举报
回复
问题己解决,是这样做的
for(int i=0;i<myDataTable.Rows.Count;i++)
{
string sqlstr="insert into //SQL语句,myDataTable中的数据一行一行插入。
SqlCommand command=new SqlCommand(sqlstr,conn);
command.ExecuteNonQuery();
}
不会更好的办法只好先这样了。
junsheng 2004-12-03
  • 打赏
  • 举报
回复
自己顶
junsheng 2004-12-03
  • 打赏
  • 举报
回复
谢谢各位,用到适配器也要用到SQL语句,另一个表是一个空表。我的问题也就是在dataGrid1中的表中显示的内容如何插入到数据库的表中的问题,说白了也就是表中显示的内容如何一行一行的插入到数据库中的另一个表中(对应的结构已经建好的表)51106354(大头)老兄您的关健处
//在这里写入你的insert语句可以是一个存储过程;能够在写明白一些就好了。
_jfeng(静心)老兄您的“若要存回数据库”这一部分好象没写完。
恕我愚钝,还请告知。
_jfeng 2004-12-03
  • 打赏
  • 举报
回复
如果只是简单生成一个表用dataGrid显示没有用到适配器和数据集,且不用存放回到数据库:
DataTabe dtold= new DataTable();
//..
DataTabe newdt = dtold.Copy();

若要存回数据库(可能字段名称不一样):
DataTabe newdt = new DataTable();
//自己添加和数据库表一样的字段,包括类型
newdt.Columns.Add("Table2_column1",typeof(System.string));
newdt.Columns.Add("Table2_column2",typeof(System.Decimal));
//..
foreach(DataRow dr in dtold)
{
DataRow drnew = newdt.NewRow();
drnew[Table2_column1]=dr["c1"];
drnew[Table2_column2]=dr["c2"];
//..
newdt.Rows.Add(drnew);
}
qingyuan18 2004-12-03
  • 打赏
  • 举报
回复
看来楼上的已经说得很清楚了~~`
51106354 2004-12-03
  • 打赏
  • 举报
回复
给你一个例子,是前两天我回答别的网友的问题,和你的相似,不过他是从一个表导入到另一个表的数据,也属于内存操作,你自己看看吧.
string Sql = "SqlServer查询";
string Sql1 = "Access查询";
SqlCommand cmd1 = new SqlCommand(Sql);
da.SelectCommand = cmd1;
DataSet ds = new DataSet;
DataTable NewSqlServer;
da = new SqlDataAdapter(ds,Conn1);
da.Fill(ds,"SqlServer表");
NewSqlServer= ds.Tables["SqlServer表"];//得到表结构
cmd1 = new SqlCommand(Sql1);
da.SelectCommand = cmd1;
DataTable ATable;
da = new SqlDataAdapter(ds,Conn1);
da.Fill(ds,"Access表");
ATable = ds.Tables["Access表"];//得到Access数据库表的数据
if(ATable.Rows.Count != 0)
{
DataRow NewRow;
for(int i=0;i<ATable.Rows.Count;i++)
{
NewRow = NewSqlServer.NewRow();
NewRow["ID"] = ATable.Rows[i]["ID"];
NewRow["PONO"] = ATable.Rows[i]["PONO"];
NewSqlServer.Rows.Add(NewRow);
}
}
//在这里写入你的insert语句可以是一个存储过程;
da.InsertCommand = cmd;
da.Update(NewSqlServer);
da.Dispose();
da = null;
Conn1.Close();
Conn1.Dispose();
yaopeng117 2004-12-03
  • 打赏
  • 举报
回复
可以用SqlDataBuilder。

当然也要用到SqlDataAdapter
river723 2004-12-03
  • 打赏
  • 举报
回复
没太明白你的意思,表复制是table1.Clone(),只复制结构是table1.Copy();
tonybaobao 2004-12-03
  • 打赏
  • 举报
回复
DataTable newTable = (DataTable)dataGrid1.DataSource;

//然后再用Adapter.Update()方法。你必须自己写Adapter.InsertCommand
//或者你可以foreach读取每DataRow,再读出每一个字段值,自己插入

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧