首页 新闻 会员 周边 捐助

DataSet写入数据库

0
悬赏园豆:60 [已解决问题] 解决于 2011-11-18 12:33

C#有没有方法可以直接将DataSet写入Oracle数据库?DataSet的结构和目的数据库表是一致的,求教啊!有没有不用循环的方法

silverlight4的主页 silverlight4 | 初学一级 | 园豆:58
提问于:2011-11-17 19:30
< >
分享
最佳答案
0

用DataAdpter

收获园豆:60
artwl | 专家六级 |园豆:16736 | 2011-11-17 19:38

这里有个示例:http://www.cnblogs.com/lizhang0101/archive/2008/11/10/1800597.html

ORACLE下只要把命名空间改一下就OK了

DataAdpter的结构也可以自己构建的

artwl | 园豆:16736 (专家六级) | 2011-11-17 19:45

@artwl: 您好 我是初学 不是太懂

可不可以帮我看看代码

DbProviderFactory dbf=DbProviderFactories.GetFactory("System.Data.OracleClient");
            string strSql = "select * from mcemployeeinfogs where rownum=1";
            DbCommand cmd2 = db1.GetSqlStringCommond(strSql);
            DbDataAdapter ddb = dbf.CreateDataAdapter();
            ddb.SelectCommand = cmd2;
            DataSet dsd = new DataSet();
            ddb.Fill(dsd);
            DbCommandBuilder dcb = dbf.CreateCommandBuilder();
            dcb.DataAdapter = ddb;
            ddb.InsertCommand = dcb.GetDeleteCommand();
            ddb.UpdateCommand = dcb.GetUpdateCommand();
            ddb.DeleteCommand = dcb.GetDeleteCommand();
            dsd = dst;
            ddb.Update(dsd,"mcemployeeinfogs");

silverlight4 | 园豆:58 (初学一级) | 2011-11-18 10:17

@silverlight4: 运行后有什么问题吗?

artwl | 园豆:16736 (专家六级) | 2011-11-18 10:22

@artwl: 运行没有错误 但是DataSet更新了,数据库不更新

silverlight4 | 园豆:58 (初学一级) | 2011-11-18 11:30

@silverlight4: 最后还有这个,别掉了:ds.AcceptChanges();

artwl | 园豆:16736 (专家六级) | 2011-11-18 11:36

@artwl: 恩 我写上了 还是不行啊 麻烦您了

silverlight4 | 园豆:58 (初学一级) | 2011-11-18 11:38

@silverlight4: 你这段代码中并没有对数据进行修改啊,当然看不到效果啦

artwl | 园豆:16736 (专家六级) | 2011-11-18 11:43

@artwl: 可是我吧源数据(dst)直接赋值给目的数据集(dsd)了啊

silverlight4 | 园豆:58 (初学一级) | 2011-11-18 11:45

@silverlight4: 解决了 谢谢您

 ddb.InsertCommand = dcb.GetDeleteCommand();

改为

ddb.InsertCommand = dcb.GetInsertCommand();

silverlight4 | 园豆:58 (初学一级) | 2011-11-18 12:32

@silverlight4: 不客气,记得结帖哦^^

artwl | 园豆:16736 (专家六级) | 2011-11-18 12:33
其他回答(1)
0

用“DataAdpter”设配器啊。

[CC] | 园豆:61 (初学一级) | 2011-11-18 11:17

您也帮忙看看吧 不更新数据库,

DbProviderFactory dbf=DbProviderFactories.GetFactory("System.Data.OracleClient");
            string strSql = "select * from mcemployeeinfogs where rownum=1";
            DbCommand cmd2 = db1.GetSqlStringCommond(strSql);
            DbDataAdapter ddb = dbf.CreateDataAdapter();
            ddb.SelectCommand = cmd2;
            DataSet dsd = new DataSet();
            ddb.Fill(dsd);
            DbCommandBuilder dcb = dbf.CreateCommandBuilder();
            dcb.DataAdapter = ddb;
            ddb.InsertCommand = dcb.GetDeleteCommand();
            ddb.UpdateCommand = dcb.GetUpdateCommand();
            ddb.DeleteCommand = dcb.GetDeleteCommand();
            dsd = dst;
            ddb.Update(dsd,"mcemployeeinfogs");

支持(0) 反对(0) silverlight4 | 园豆:58 (初学一级) | 2011-11-18 11:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册