关于DataAdapter的update 指定database的问题

问题描述

查看DataAdapter生成的updateCommandText和insertCommandText都是类似updatetb_nameset......这样的语句,这在指定了要操作的database的时候没任何问题。但是我这边的情况是,由于需要在多个数据库中操作,因此生成connection的时候没有指定数据库。如何才能让updateCommandText生成的语句里面的tablename能包含databasename,形如db_game.t_game这样的形式?另外我这样SqlDataAdapterda=newSqlDataAdapter(strSql,strConn);//strSql是一个指定的sql语句,strConn是连接串字符串SqlCommandBuilderbuilder=newSqlCommandBuilder(da);da.UpdateCommand=builder.UpdateCommand;//打印出来的da.UpdateCommandText是形如这样的字符串:“updatet_gameset...”.请问系统是怎么知道sql语句strSql指定的表是t_game,是怎么实现的?

解决方案

解决方案二:
1.链接不同数据库时connectionString是不同的,在生成DataAdapter时已经指定了connectionString你可以指定strConn,用枚举。2.当你写好strSql后用SqlCommandBuilderbuilder=newSqlCommandBuilder(da);时相当于系统写好了Update.CommandText=@"UPDATE[dbo].[CIPLR]SET[CILNR]=@CILNR,[CILNM]=@CILNMWHERE(CILNR=@Original_CILNR);SELECTCILNR,CILNMFROMQM_CIPLRWHERE(CILNR=@CILNR)"---------;这样的语句,并指定了connectionString。希望你再说确切些,还有你用的那种结构,三层结构???
解决方案三:
todu_weiminconnectionString里面没有设置initdatabase,直接是用SqlCommandBuilderbuilder=newSqlCommandBuilder(da);da.UpdateCommand=builder.UpdateCommand;执行update时候,提示nodatabaseselected。表面connection没有选择数据库增加一句:da.UpdateCmmand.CommandText="usedb_game;"+da.UpdateCmmand.CommandText//我用mysql数据库再执行update操作,就能更新正确!但是"usedb_game;"这句感觉很冗余。。。
解决方案四:
todu_weimin我用的是三层结构。但我的这个问题应该跟用什么结构没关系吧

时间: 2024-08-22 15:13:55

关于DataAdapter的update 指定database的问题的相关文章

HOW TO: Update a Database from a DataSet Object Us

HOW TO: Update a Database from a DataSet Object Using Visual Basic .NETThis article discusses a Beta release of a Microsoft product. The information in this article is provided as-is and is subject to change without notice. No formal product support

HOW TO: Update a Database from a DataSet Object Using Visual Basic .NET

object|visual HOW TO: Update a Database from a DataSet Object Using Visual Basic .NETThis article discusses a Beta release of a Microsoft product. The information in this article is provided as-is and is subject to change without notice. No formal pr

DataAdapter的Update添加数据有很长的时间延时

问题描述 我向datatable添加了一条记录(dt中只有一条记录).使用DataAdapter的Update功能将数据保存到数据库中,有很长的时间延时,环境是是VS2005,SQL2005,数据库日志也清理了,插入的表也是新建的.我插入记录后,立刻使用select语句去查询,查询不到,等几秒后才能查询到.哪位高手遇到过这个问题,点解一下.这是否是微软的一个BUG??? 解决方案 解决方案二:会不会是机子的原因,你是在本机上测试的吧?有时候和机子的速度有关,你可以上传到自己的空间试试解决方案三:

DataAdapter.update,数据库没有

问题描述 我有两处使用了DataAdapter.update,其中一处更新成功,另一处无任何反应(数据库文件的时间戳没有变化.)第一处的场景是:先从数据库文件中select*读取数据到this.dataGridView1.DataSource中,然后在this.dataGridView1.DataSource修改数据.之后执行一下代码,数据库记录是可以更新的privatevoidbutton4_Click(objectsender,EventArgse){DataTabledt=this.dat

使用 DataAdapter 执行批量更新

执行    摘自MSDN: 在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行.因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRow,确定是否已修改.如果该行已修改,将根据该行的 RowState 属性值调用相应的 UpdateCommand.InsertCommand 或 DeleteCommand.每一次行更新都涉及网络与数据库之间的双向数据传输. 在 ADO.NE

DataAdapter执行批量更新的实例代码

这篇文章介绍了DataAdapter执行批量更新的实例代码,有需要的朋友可以参考一下,希望对你有所帮助   在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行.因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRow,确定是否已修改.如果该行已修改,将根据该行的 RowState 属性值调用相应的 UpdateCommand.InsertCommand 或 DeleteCo

DataAdapter执行批量更新的实例代码_实用技巧

在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行.因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRow,确定是否已修改.如果该行已修改,将根据该行的 RowState 属性值调用相应的 UpdateCommand.InsertCommand 或 DeleteCommand.每一次行更新都涉及网络与数据库之间的双向数据传输.    在 ADO.NET 2.0 中,Dat

使用 DataAdapter 和 DataSet 更新数据库 [C#]

DataAdapter 的 Update 方法可调用来将 DataSet 中的更改解析回数据源.与 Fill 方法类似,Update 方法将 DataSet 的实例和可选的 DataTable 对象或 DataTable 名称用作参数.DataSet 实例是包含已作出的更改的 DataSet,而 DataTable 标识从其中检索更改的表. 当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT.UPDATE 或 DELETE).当 DataAda

ado.net数据操作全接触四(表关联,DataAdapter)

ado|数据 8.1创建一个(主/祥)表关联1: <%@ Import Namespace="System.Data" %>2: <%@ Import NameSpace="System.Data.SqlClient" %>3:4: <%5: Dim myConnection As SqlConnection6: Dim myDataAdapter As SqlDataAdapter7: Dim myDataSet As DataSet