首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlCommandBuilder使用什么连接来生成查询?

SqlCommandBuilder使用什么连接来生成查询?
EN

Stack Overflow用户
提问于 2011-01-10 23:42:20
回答 2查看 552关注 0票数 0

我之所以这样问,是因为当我在我的SqlCommandBuilder中使用GetUpdateCommand()GetInsertCommand()时,生成的SqlCommand具有其连接成员集,但处于关闭状态。我想知道它使用的是什么连接,因为我在这个对象中看不到任何连接成员,而SqlCommandBuilder.DataAdapter.SelectCommand中的连接是打开的(更新/删除/插入命令属性为空)。

在运行GetUpdateCommand()GetInsertCommand()之前,我应该在哪里检查连接的状态?或者,如果他们的内部连接关闭了,我应该直接打开它吗?

顺便说一句,我在SQL Server2008上使用.Net 4。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-11 00:04:19

AFAIK它正在使用SqlCommandBuilder.DataAdapter.SelectCommand的连接来创建新命令,但是只有在您第一次尝试访问该命令时才会执行此操作。在第一次尝试之后,命令实例将被保留,并且仅重新生成其命令文本。

票数 0
EN

Stack Overflow用户

发布于 2011-01-10 23:52:39

SqlCommandBuilder上调用GetXXXCommand时,它将在DataAdapter (DataAdapter.SelectCommand.Connection.CreateCommand())上的连接集上内部创建一个新命令。这意味着对于构建器创建的所有命令,连接应该是相同的,打开/关闭状态也应该是相同的。

你的代码是什么样子的,决定了状态在SqlCommandBuilder.DataAdapter.SelectCommand.Connection上是打开的,而不是在SqlCommandBuilder.GetInsertCommand().Connection上!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4648515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档