社区
C#
帖子详情
DataAdapter.Update
wmhnq
2006-01-04 11:59:37
可以直接使用DataAdapter.Update但要先把DataAdapter.SelectCommand,InsertCommand,DeleteCommand设置好.
///////我在用DataAdapter.Update的时候直接就用了,我并没有设置SelectCommand,InsertCommand这些啊?如果设置改是怎么设置的呢?
...全文
356
5
打赏
收藏
DataAdapter.Update
可以直接使用DataAdapter.Update但要先把DataAdapter.SelectCommand,InsertCommand,DeleteCommand设置好. ///////我在用DataAdapter.Update的时候直接就用了,我并没有设置SelectCommand,InsertCommand这些啊?如果设置改是怎么设置的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lidong6
2006-01-05
打赏
举报
回复
楼主怎么把我回复别人的话搬出来了, 呵呵.
楼上几位回答的都很详细,另外在用.NET2003新建 [数据窗体向导],可以查看更为详细的代码.
ChengKing
2006-01-05
打赏
举报
回复
用SqlCommandBuilder,它会自动生成相关语句.具体请看:
两个方法任意选择一个即可:
public DataSetUpdateByDataSet(DataSet ds,string strTblName,string strConnection)
{
SqlConnection conn = new SqlConnection(strConnection));
SqlDataAdapter myAdapter = new SqlDataAdapter();
SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection) conn);
myAdapter.SelectCommand = myCommand;
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
try
{
lock(this) //处理并发情况(分布式情况)
{
myAdapter.Update(ds,strTblName);
}
}
catch(Exception err)
{
conn.Close();
throw new BusinessException(err);
}
return ds; //数据集的行状态在更新后会都变为: UnChange,在这次更新后客户端要用返回的ds
}
或
public DataSet UpdateByDataSet(DataSet ds,string strTblName,string strConnection)
{
SqlConnection conn = new SqlConnection(strConnection));
SqlCommand myCommand = new SqlCommand("select * from "+strTblName),(SqlConnection) conn);
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand );
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand();
myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand();
myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand();
try
{
lock(this) //处理并发情况(分布式情况)
{
conn.Open();
myAdapter.Update(ds,strTblName);
conn.Close();
}
return ds; //数据集的行状态在更新后会都变为: UnChange,在这次更新后客户端要用返回的ds }
catch(Exception err)
{
conn.Close();
throw new BusinessException(err);
}
}
具体请看原Blog:
http://blog.csdn.net/chengking/archive/2005/08/26/465874.aspx
真相重于对错
2006-01-05
打赏
举报
回复
我在用DataAdapter.Update的时候直接就用了,我并没有设置SelectCommand,InsertCommand这些啊?如果设置改是怎么设置的呢?
-=========================
SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn);
catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
"WHERE CategoryID = @CategoryID" , nwindConn);
catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");
SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
workParm.SourceColumn = "CategoryID";
workParm.SourceVersion = DataRowVersion.Original;
DataSet catDS = new DataSet();
catDA.Fill(catDS, "Categories");
DataRow cRow = catDS.Tables["Categories"].Rows[0];
cRow["CategoryName"] = "New Category";
catDA.Update(catDS);
zhgroup
2006-01-05
打赏
举报
回复
对于DataAdapter,如果要执行insert/delete/update/select操作,都要设置其相应的Command对象,实际上也就是设置其SQL语句及参数,然后再由DataAdapter执行相应操作.
newgrammer
2006-01-05
打赏
举报
回复
你能说具体点吗?
Data
Adapter
执行批量更新的实例代码
在以前版本的 ADO.NET 中,使用
Data
Set 中的更改来更新数据库时,
Data
Adapter
的
Update
方法每次更新数据库的一行。因为该方法循环访问指定
Data
Table 中的行,所以,会检查每个
Data
Row,确定是否已修改。如果...
Data
Adapter
是如何更新数据库数据的
Data
Adapter
对象不仅只是捕获数据的功能,事实上它还可以帮助你将更新后的
Data
Set以批次的方式再写回后台数据库,而且还相当简单,只要调入
Update
方法,并传入准备更新的
Data
Set及
Data
Table即可。
ADO.NET本质论.pdf
5.7
update
的工作原理 5.8
data
set事件模型 5.9 编写常规自定义命令 5.9.1 adox commandbuilder 5.9.2 构造批处理更新命令 5.10 再论
data
set和非关系数据类型 5.11 应该使用
data
set还是
data
reader ...
C#使用
Data
Set
Data
table更新数据库的三种实现方法
本文以实例形式讲述了使用
Data
Set
Data
table更新数据库的三种实现方法,包括CommandBuilder 方法、
Data
Adapter
更新数据源以及使用sql语句更新。...c)为了返回构造 INSERT、
UPDATE
和 DELETE 。SQL CommandBuil
cj.rar_cj
利用
Data
Adapter
、CommandBuilder和
Data
Set相结合,通过
Data
Adapter
的Fill()与
Update
()方法,进行对数据库的访问
C#
110,545
社区成员
642,580
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章