问题标签 [sqlconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3874 浏览

.net - 如果在关闭 SqlDataReader 之前我们无法检索输出参数,那么为什么...?

1)

在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为 SqlDataReader 提供服务,除了关闭 SqlConnection 之外,无法对 SqlConnection 执行其他操作。在调用 SqlDataReader 的 Close 方法之前就是这种情况。例如,在调用 Close 之前,您无法检索输出参数。

如果上述声明为真,那么为什么以下方法能够在阅读器关闭之前从输出参数中检索值:

2)

您可以重置 CommandText 属性并重新使用 SqlCommand 对象。但是,您必须先关闭 SqlDataReader,然后才能执行新的或上一个命令。

为什么必须在执行新命令之前关闭 sqldatareader?

谢谢

0 投票
5 回答
10209 浏览

c# - 如果您已经关闭 SqlConnection,是否需要关闭/处理 SqlDataReader?

我注意到This question,但我的问题更具体一些。

使用有什么好处吗

代替

显然,如果您计划在同一个连接上运行多个命令,这很重要,因为关闭一个连接SqlDataReader比关闭和重新打开一个连接更有效(调用conn.Close();conn.Open();也将释放连接)。

我看到很多人坚持认为未能关闭SqlDataReader意味着留下开放的连接资源,但这是否仅适用于您不关闭连接的情况?

0 投票
1 回答
2034 浏览

sqlconnection - CommandBuilder 和 SqlTransaction 插入/更新行

我可以让它工作,但我觉得我做得不好。

第一次运行时,它按预期工作,并在“thisField”包含“doesntExist”的位置插入新行

但是,如果我随后运行它,我会收到一个运行时错误,我无法插入重复键,因为它违反了主键“thisField”。

即使我可以通过移动 AcceptChanges 的反复试验或在 Begin/EndEdit 中封装更改来实现这一点,然后我开始遇到“并发冲突”,它不会更新更改,而是告诉我它失败了更新 1 个受影响行中的 0 个。

有什么疯狂的明显我想念的吗?

0 投票
4 回答
1603 浏览

asp.net - 如何关闭asp.net中的sqlconnection

我想知道这个asp.net代码是否有问题:

如果我避免调用“MyDataReader.Close()”,连接会关闭吗?我问这个是因为我假设如果调用“MyConn.Close”它会自动关闭相关的数据读取器......还是我错了?

谢谢

0 投票
4 回答
570 浏览

.net - 传递 SqlConnection

我创建了一个 TransactionScope,并在该范围内在数据库中创建和更新了各种项目。在此过程中,我对数据库进行了很多调用。最初我在 TransactionScope 的开头打开了一个 SqlConnection 并将其传递给任何进行 DB 调用的函数,然后在所有调用完成后和事务提交之前关闭连接。这样做更好还是为每次调用打开和关闭连接(使用相同的连接字符串)更好?

0 投票
3 回答
34229 浏览

c# - 在什么情况下 SqlConnection 会自动加入环境 TransactionScope 事务?

在事务中“登记” SqlConnection 意味着什么?这是否仅仅意味着我在连接上执行的命令将参与事务?

如果是这样,在什么情况下 SqlConnection 会自动加入环境 TransactionScope 事务?

请参阅代码注释中的问题。我对每个问题的答案的猜测跟在括号中的每个问题之后。

场景 1:在事务范围内打开连接

场景 2:在事务范围内使用在其外部打开的连接

0 投票
2 回答
11263 浏览

php - 为什么我的 SQL Server 查询失败?

以上是代码。第一个查询/fetch_assoc 工作得很好,但是接下来的两个查询失败了,我不知道为什么。这是从 php 显示的错误语句:

警告:mssql_query() [function.mssql-query]:消息:无效的对象名称“问题”。(严重性 16)在 /srv/www/htdocs/agreement.php 第 47 行

警告:mssql_query() [function.mssql-query]:一般 SQL Server 错误:在第 47 行的 /srv/www/htdocs/agreement.php 中检查来自 SQL Server(严重性 16)的消息警告:mssql_query() [function. mssql-query]:第 47 行 /srv/www/htdocs/agreement.php 中的查询失败

警告:mssql_fetch_assoc():提供的参数不是第 48 行 /srv/www/htdocs/agreement.php 中的有效 MS SQL 结果资源

警告:mssql_query() [function.mssql-query]:消息:无效的对象名称“software.software_dbo.ApplicationInfo”。(严重性 16)在 /srv/www/htdocs/agreement.php 第 51 行

警告:mssql_query() [function.mssql-query]:一般 SQL Server 错误:在第 51 行的 /srv/www/htdocs/agreement.php 中检查来自 SQL Server(严重性 16)的消息

警告:mssql_query() [function.mssql-query]:第 51 行 /srv/www/htdocs/agreement.php 中的查询失败

警告:mssql_fetch_assoc():提供的参数不是第 52 行 /srv/www/htdocs/agreement.php 中的有效 MS SQL 结果资源

该错误显然围绕查询未执行这一事实。在我的数据库中,我有一个名为 Issues 的表和一个名为 ApplicationInfo 的表,所以我不确定它为什么告诉我它们是无效对象。

0 投票
2 回答
1630 浏览

sql-server - 与 SQL Server Express 的远程连接失败

我有两台计算机共享相同的 Internet IP 地址。使用其中一台计算机,我可以远程连接到另一台计算机上的 SQL Server 数据库。这是我的连接字符串:

192.168.1.101是服务器,SQLEXPRESSNI是SQL Server实例名,FirstDB是数据库名。

现在,我有另一台具有不同 Internet IP 地址的计算机。我想使用不属于我的局域网的第三台计算机连接到上面的服务器。我目前无法访问第三台计算机,所以我想再次使用(如果可能的话)局域网中的客户端计算机。

不工作

请注意,我是初学者,所以即使我知道自己想做什么,我也不太确定自己在做什么。通过将 Internet IP 传递给 SqlConnection 对象而不是本地 IP 地址,如何使用同一网络中的客户端计算机成功连接到服务器计算机?另请注意,我的最终目标是使用外部客户端连接到服务器,但我现在无法访问该计算机。我会很感激任何帮助。

0 投票
2 回答
2714 浏览

ado.net - ADO.NET:单个 SqlConnection 可以一次执行多个查询吗?

大家过得怎么样?

今天很简单的问题。如果我给两个单独的线程两个不同的 SqlCommands。如果两个SqlCommands使用同一个SqlConnection,它们可以同时执行吗?SqlConnection 会阻止这种行为吗?还是发生了……更有趣的事情?

(出于这个确切原因,我确实相信 SqlConnections 是由连接字符串汇集的,但我只需要一些保证)


这是一个假设性问题,只是好奇 SqlConnection 在所描述的设计下的行为方式。

0 投票
6 回答
372 浏览

.net - 检测是否调用了垃圾收集器(.Net)

使用 SqlConnection 时,务必在使用时关闭它 - 通过 .Close() 或将 SqlConnection 置于“使用”中。不幸的是,包括我自己在内的人们往往会忘记这一点,这就是垃圾收集器暂时拯救我的地方,直到我忘记关闭我的连接太多次或使用该应用程序的人数增加。

如果可能的话,我想知道如何检测垃圾收集器是否处理了 SqlConnection,因为它认为它不再使用,或者 SqlConnection 是否以正确的方式关闭。

另一种方法可能是继承 SqlConnection 并在其初始化程序上放置一个计时器,并检查在处理类时关闭连接需要多长时间。我真的不喜欢计时器,但这个想法是在写这篇文章的时候出现的。

也许有第三种甚至更聪明的方法来解决这一切......你会推荐什么?