关于将dataset插入数据库问题

guan651017094 2010-11-04 02:44:47
我现在要将一个dataset插入到数据库,程序没有报错,但是数据缺没能插入到数据库,是什么原因啊,代码如下:

if (dataSet.Tables[0].Rows.Count > 0)
{
string strSelect = "select * from dbo.MRPS_CheckObject" ;
SqlConnection conn = new SqlConnection(strcon);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand((strSelect),(SqlConnection)conn);
da.SelectCommand = cmd;
SqlCommandBuilder cb = new SqlCommandBuilder(da);
int b=da.Update(dataSet,dataSet.Tables[0].TableName);
conn.Close();
}

期待高手解答
...全文
261 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
guan651017094 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zrrsj 的回复:]
sqlbulkcopy.DestinationTableName = tablename;
sqlbulkcopy.WriteToServer(dataset.Tables[0]);
[/Quote]

这位大哥,这样能插入重复数据吗?我dataset里面的数据有可能是在数据库中存在的,所以,用这个不能实现吧!
zrrsj 2010-11-05
  • 打赏
  • 举报
回复
sqlbulkcopy.DestinationTableName = tablename;
sqlbulkcopy.WriteToServer(dataset.Tables[0]);
guan651017094 2010-11-05
  • 打赏
  • 举报
回复
dt.TableName = "dbo.MRPS_CheckObject";
if (dt.Rows.Count > 0)
{
string strSelect = "select * from dbo.MRPS_CheckObject";
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand((strSelect), (SqlConnection)conn);
if (conn.State !=ConnectionState.Open)
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
cmd.Transaction = tran;
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
cb.QuotePrefix = "[";
cb.QuoteSuffix = "]";
cb.ConflictOption = ConflictOption.OverwriteChanges;
da.InsertCommand = cb.GetInsertCommand();
da.DeleteCommand = cb.GetDeleteCommand();
da.UpdateCommand = cb.GetUpdateCommand();
if (conn.State != ConnectionState.Open)
conn.Open();
int upcount = da.Update(dt);
dt.AcceptChanges();
tran.Commit();

我把代码都贴出来了,请高手看看,哪里有错误啊,怎么就是插入不进去的,程序又不报错
boykiller007 2010-11-04
  • 打赏
  • 举报
回复
public DataSet CreateCmdsAndUpdate(string connectionString,
string queryString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

connection.Open();

DataSet customers = new DataSet();
adapter.Fill(customers);

//code to modify data in dataset here

adapter.Update(customers);

return customers;
}




csdn上的源码

或者
用sSqlBulkCopy sqlbulkcopy
sqlbulkcopy.DestinationTableName = tablename;//数据库中的表名
sqlbulkcopy.WriteToServer(dataset.Tables[0]);
guan651017094 2010-11-04
  • 打赏
  • 举报
回复
哪位大哥能不能给个实例的啊
boykiller007 2010-11-04
  • 打赏
  • 举报
回复
sqldataadapter 我用这个整表导入过 效率和一个一个没多少区别

貌似还有sqlbulkcopy 他可以快很多吧

guan651017094 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 boykiller007 的回复:]
foreach(DataTable.Rows)
一行行导入可以的吧


http://hi.baidu.com/ppdd521/blog/item/282c06236ce51e4bac34de20.html
[/Quote]

大哥,一行行插入不太现实额,不是有SqlCommandBuilder能一次插入的吗,我不知道怎么用的额,用的出错了
boykiller007 2010-11-04
  • 打赏
  • 举报
回复
foreach(DataTable.Rows)
一行行导入可以的吧


http://hi.baidu.com/ppdd521/blog/item/282c06236ce51e4bac34de20.html
guan651017094 2010-11-04
  • 打赏
  • 举报
回复
我dataset现在有很多行数据,表名,字段名都和数据库里面的一样,请问如何插入到数据库的啊帮个忙啊。在线等
guan651017094 2010-11-04
  • 打赏
  • 举报
回复
我是要将dataset的数据全部插入到数据库里面
boykiller007 2010-11-04
  • 打赏
  • 举报
回复
你是不是想把dataset里面的内容导入到数据库呀
tangserver 2010-11-04
  • 打赏
  • 举报
回复
插入还是更新啊你
guan651017094 2010-11-04
  • 打赏
  • 举报
回复
那我应该怎么做,才能将dataset插入到数据库里面呢?
zcxverygood123456 2010-11-04
  • 打赏
  • 举报
回复
插入到数据库?
没有看到插入数据库的语句哦
Update是更新的意思,即修改

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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