问题标签 [ado.net]

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 投票
14 回答
20940 浏览

.net - 可以使用 SqlCommandBuilder(不使用存储过程)在插入时检索 IDENTITY 列值吗?

仅供参考:我在 dotnet 3.5 SP1 上运行

我试图在执行更新后(使用 SqlDataAdapter 和 SqlCommandBuilder)将标识列的值检索到我的数据集中。执行 SqlDataAdapter.Update(myDataset) 后,我希望能够读取 的自动分配值myDataset.tables(0).Rows(0)("ID"),但它是 System.DBNull(尽管插入了行)。

(注意:我不想显式地编写一个新的存储过程来做到这一点!)

一种经常发布的方法http://forums.asp.net/t/951025.aspx像这样修改 SqlDataAdapter.InsertCommand 和 UpdatedRowSource:

显然,这似乎对过去的许多人有用,但对我不起作用。

另一种技术:http ://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=619031&SiteID= 1 对我也不起作用,因为在执行 SqlDataAdapter.Update 后,SqlDataAdapter.InsertCommand.Parameters 集合被重置为原始的(丢失了额外的添加参数)。

有谁知道这个问题的答案???

0 投票
4 回答
1507 浏览

c# - SqlParameter Size - 设置为最大大小的负面影响?

我有一个SqlCommand我想调用Prepare()的对象CommandType = Text(它不能是存储过程)。

为此,我需要将Size参数上的属性设置为非零,否则会引发异常。Size即使实际值的大小永远不会接近该值,将所有参数设置为最大可能大小是否有任何负面影响?有一个更好的方法吗?

0 投票
1 回答
4005 浏览

asp.net - 如何分析 ADO.NET 连接池?

我正在分析一个 ASP.NET Web 应用程序。我相信这是非常数据库连接密集型的(过度使用 ADO.NET 连接池)。如何在不调试的情况下告诉它进入池的次数以及池中平均有多少可用连接?是否有计数器可以在 PerfMon 或其他工具中为我提供此信息?

0 投票
4 回答
2832 浏览

.net - Rhino Mocks:如何模拟 ADO.NET 的 DataRow?

ADO.NET 有臭名昭著的 DataRow 类,您无法使用 new 对其进行实例化。现在这是一个问题,因为我发现需要使用 Rhino Mocks 来模拟它。

有谁知道我如何解决这个问题?

0 投票
2 回答
1755 浏览

c# - 远程客户端无法使用 ASP.NET/ADO 打开 XLS 文件

我正在尝试执行以下操作:

  1. 用户进入网页,上传 XLS 文件
  2. 使用 ADO .NET 打开 XLS 文件,使用 JET 引擎连接到 Web 服务器上本地上传的文件

这一切都在本地运行良好(我的机器作为客户端和 Web 服务器) - 实际上正在使用远程客户端在客户的 Web 服务器上工作,但在尝试使用远程客户端进行内部测试时无法正常工作。

我得到的错误是:

产生错误的代码是:

对“打开”的调用引发了上述异常。

该站点正在使用模拟,并且所有呼叫都是在用户登录客户端时进行的。到目前为止我所做的一切都是为了让这个工作:

按照此处的步骤http://support.microsoft.com/kb/251254/并将 TMP/TEMP 环境变量目录的权限分配给我用来测试的用户(也将权限分配给 ASPNET,然后分配给“每个人”作为一个毯子“这个权限相关吗?”测试)。

确保文件正在上传,并且 XLS 文件本身继承了允许用户完全访问文件的目录权限。为了以防万一,我还将此目录权限授予“每个人” - 这也没有帮助。

我不必更改任何环境变量,因此在进行这些更改后不必重新启动 - 但我不应该让 Windows 文件夹/文件权限生效。

在这一点上,我完全不知所措

0 投票
2 回答
1794 浏览

sql-server - 同步数据集

将 DataSet 与数据库中的数据同步的最佳方法是什么?以下是参数:

  • 我们不能简单地重新加载数据,因为它绑定到用户可能已经配置的 UI 控件(这是一个他们可以展开/折叠的树形网格)
  • 我们不能在数据库中使用更改标志(如 UpdatedTimeStamp),因为更改并不总是流经应用程序(例如,DBA 可以使用 SQL 语句更新字段)
  • 我们不能在数据库中使用更新触发器,因为它是一个多用户系统
  • 我们正在使用 ADO.NET 数据集
  • 多个字段可以更改给定行

我查看了 DataSet 的合并功能,但这似乎没有保留“ID”列的概念。我查看了 DiffGram 功能,但这里的问题是这些似乎是由同一 DataSet 中的更改生成的,而不是在某些外部数据源上发生的更改。

我已经从这个解决方案运行了一段时间,但我知道可行的方法(效率低下)是构建一个单独的 DataSet,然后迭代所有行,逐个字段地应用更改到它所在的 DataSet边界。

有没有人有类似的情况?你做了什么来解决这个问题?即使您没有遇到类似的问题,我们也欢迎您提出任何解决方案的建议。

谢谢

0 投票
7 回答
746 浏览

c# - 参数化 Sql 查询

这是我这些天正在破解的坚果

我正在处理的应用程序对 SQL 进行了一些高级处理。其中一项操作根据集合中的项目名称从不同的表中选择有关当前上下文中对象的各种元数据。为此,执行了一系列“select...from...where...in()”,为了防止恶意SQL代码,使用Sql参数构造“in()”子句的内容。

但是,当用于构造“in()”子句的项目集合大于 2100 个项目时,由于 Sql Server 限制每个查询最多 2100 个 Sql 参数,这将失败。

我现在尝试的一种方法是创建一个#temp 表来存储所有项目名称,然后在原始查询中加入该表,而不是使用“where in()”。这让我对如何使用存储在 .NET 代码中的数组中的项目名称来填充表感到头疼。当然,必须有一些批量方法来插入所有内容,而不是为每个项目发出单独的“插入”?

除此之外,我对解决此问题的替代方法非常感兴趣。

非常感谢

0 投票
4 回答
1834 浏览

c# - 在哪里可以找到使用 ADO.NET 的开源 C# 项目?

我正在尝试为我拥有的一个非常小的数据库概念编写一个 Windows 窗体和 ASP.NET C# 前端和 MSAccess 后端。

我之前曾在 MSAccess 中编写过此应用程序,但现在我需要将应用程序和数据库放在不同的位置。我现在发现(感谢 StackOverflow 用户)ADO 将是一个糟糕的选择,因为它必须始终打开一个连接。

我购买了 Microsoft ADO.Net 2.0 Step-by-Step 并且我已经阅读了其中的一些内容并理解(我认为)ADO.NET 中的基本概念。(数据集等)

我感到困惑的是实际的实现。我想知道的是你们中的任何人都知道一个 C# 项目,它有一个开源的数据库后端,我可以去看看代码,看看他们是如何做到的。我发现我这样学得更好。这本书有一张包含代码示例的 CD,我可能会参考,但我更愿意在真实的应用程序中看到真实的代码。

0 投票
1 回答
3645 浏览

c# - 如何在不知道名称/类型的情况下添加 SqlParameters?

我正在创建一个 DB 包装器,并且需要将 SQL 参数添加到我的 stament 中,但是我不知道参数名称或类型,如何做到这一点?我见过许多其他图书馆这样做......

我只想将值的顺序映射到存储过程......我认为下面的代码可以工作:

关于如何做到这一点的任何想法?注意:我知道还有其他库(例如 Enterprise Library)已经这样做了,但我处于这种情况无济于事......

谢谢。

0 投票
4 回答
12799 浏览

c# - 如何将多个表读入数据集中?

我有一个返回多个表的存储过程。如何执行和读取两个表?

我有这样的事情:

我不确定如何阅读它...处理此类查询的最佳方法是什么,我猜我应该将数据读入 DataSet?最好的方法是如何做到这一点?

谢谢。