c# 数据集填充到数据库 无法更新

lfqsy 2011-07-04 04:29:49
我从一个数据库A中查询出一个数据集ds,然后将这个DS添加到另外一个数据库B中去,但是B数据库中没有更新,谁知道什么原因,两个表的结构是一样的,
查询出DS:
public static DataSet cedataset(string sql)
{
DataSet ds = new DataSet();
try
{
using (SqlCeConnection con = new SqlCeConnection(path))
{
con.Open();
SqlCeDataAdapter adapter = new SqlCeDataAdapter(sql, con);
adapter.Fill(ds);
con.Close();
return ds;
}
}
catch
{
ds = null;
return ds;
}
}

将DS插入到另外一个数据库中去:(这里这个SQL语句和上面的查询SQL语句是一样的)
public static bool updatadb(DataSet ds,string sql,string tablename)
{

try
{

SqlConnection con = new SqlConnection(pub.strConn());
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
SqlCommandBuilder sqlcmdbuilder = new SqlCommandBuilder(da);
da.Update(ds);//如果这里加了tablename提示找不到这个表
ds.Tables[0].AcceptChanges();//ds.AcceptChanges()也试过
con.Close();
return true;

}
catch(Exception ex)
{
return false;
}
}

谁知道这种是什么原因??帮忙解答下,急
...全文
192 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfqsy 2011-07-05
  • 打赏
  • 举报
回复
来点给力的
lfqsy 2011-07-04
  • 打赏
  • 举报
回复
比较悲剧,楼上数那个适用于.net 2.0 而我这个是在.NET CF 2.0上
lfqsy 2011-07-04
  • 打赏
  • 举报
回复
SqlBulkCopy,看来这个比较强大
qldsrx 2011-07-04
  • 打赏
  • 举报
回复
其实用SqlBulkCopy也可以,只要保证2表的结构完全一样,用SqlBulkCopy会更快,无条件插入。
qldsrx 2011-07-04
  • 打赏
  • 举报
回复
修改Rowstatus的代码:
        public static void changeRowStatus(DataTable dt)
{
//请确保是刚从数据库中查询出来的DataTable,未经过任何改动,否则不允许删改行状态。
foreach (DataRow dr in dt.Rows)
{
dr.SetAdded();
}
}
qldsrx 2011-07-04
  • 打赏
  • 举报
回复
其实你可以直接用SQLSERVER自带的数据迁移工具进行复制,或者用BCP命令复制,都是很快的。
一定要用DataTable进行复制的话,必须先改变DataTable中各行的Rowstatus才行。
        public static bool updatadb(DataTable dt)
{
try
{
SqlConnection con = new SqlConnection(pub.strConn());
con.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = con.CreateCommand();
da.InsertCommand.CommandText = "INSERT INTO XXX VALUES(XXX)";//自己写insert语句,别告诉我你不会写SQL。
//有几个列,添加几个参数,注意参数名和列名书写正确。
da.InsertCommand.Parameters.Add(new SqlParameter("@参数1", SqlDbType.VarChar,20,"dt中对应的列名"));
//END
da.Update(dt);
con.Close();
return true;
}
catch (Exception ex)
{
return false;
}
}
itliyi 2011-07-04
  • 打赏
  • 举报
回复
查询时候就把查询列表保存到另外一表
lfqsy 2011-07-04
  • 打赏
  • 举报
回复
不同链接
你我他 2011-07-04
  • 打赏
  • 举报
回复
你可以在同一个链接里操作呀!表结构又一样。
 insert into 数据库A.dbo.表
select * from 数据库B.dbo.表
lfqsy 2011-07-04
  • 打赏
  • 举报
回复
将一个DATASET全部插入到另外一个数据库的一个表中去
lfqsy 2011-07-04
  • 打赏
  • 举报
回复
不同的数据库来操作,那我这个要怎么改
sqz10200 2011-07-04
  • 打赏
  • 举报
回复
你这不是同一个连接了
itliyi 2011-07-04
  • 打赏
  • 举报
回复
你这不是同一个连接了
lfqsy 2011-07-04
  • 打赏
  • 举报
回复
顶下,来人忙吗解答下

110,534

社区成员

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

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

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