DataSet中的表是数据库里两个表通过inner join返回来的一个查询结果,对DataSet操作以后,怎样才能把改变的结果提交到相对应的表里呢?
解决方案 »
- c#显示id值不同的数据
- 如何处理mssql记录中出现的换行符等
- 三级联动里怎样获得所选项的ID
- 64位系统下C#调用Matlab动态链接库初始化失败
- 想用c#写一个播放器,请给点思路
- class clasname <Type>...这个<Type>是啥意思...我在别人的问题看到的不解之外...进来看看代码
- c#读取数据库中数据的问题~
- 急!在线等,多线程读取数据并写入的问题
- 获得Sql表结构的问题,会玩Sql server2000的进来出出主意!
- 兄弟们为什么我在系统中加入线程,程序有时候容易出现线程出错的对话框,如线程正在终止的信息,但是点击忽略,系统还是正常启动!
- 计划用C#开发基于MYSQL数据库平台的应用,大家给点建议吧
- 我想动态的生成一些lable,每一项后面都有一组单选,怎么办啊,我是新手
这两年来慢慢习惯了光说不练
///*************************///
1、在数据库端的存储过程中不用inner join,写两条select语句,中间用;隔开,例:
Create Proc ttables
As
select * from a;select * from b2、显示数据
DataSet ds=new DataSet();
SqlDataAdapter sadp=new SqlDataAdapter("ttables","数据库连接字符吕");sadp.Fill(ds);
ds.Tables[0].TableName="Table1";
ds.Tables[1].TableName="Table2";ds.Relations.Add("这里随例写",ds.Tables["Table1"].Columns["ID"],ds.Tables["Tables"]).Columns["ID"];//假设a表的ID字段可以与b表的ID字段做关联 ;
this.dataGrid1.DataSource=this.GetData();
3、保存数据
DataView dv1=new DataView(dt.Tables[0],"","",DataViewRowState.Added);
DataView dv2=new DataView(dt.Tables[1],"","",DataViewRowState.Added);//第当这两上表被新加入记录时,对应的dv1和dv2会缓存这些记录.
DataRow row;
for(int i=0;i<dv1.Count;dv1++)
{
row=dv1[i];//将dv1中的第i行记录给row对象
sadp.InsertCommand.CommandText="拥有insert语句的存储过程";
sadp.InsertCommand.Parameters.Add("@ID",row[0]);
sadp.InsertCommand.Parameters.Add("@ID",row[1]); //向数据库中a表插入数据
}
sadp.InsertCommand.ExecuteNonQuery();for(int i=0;i<dv2.Count;dv1++)
{
row=dv2[i];//将dv1中的第i行记录给row对象
sadp.InsertCommand.CommandText="拥有insert语句的存储过程";
sadp.InsertCommand.Parameters.Add("@ID",row[0]);
sadp.InsertCommand.Parameters.Add("@ID",row[1]); //向数据库中b表插入数据
}
sadp.InsertCommand.ExecuteNonQuery();
方法如上,可能还会有些小问题,自己调试一下.