问题标签 [sqlclient]

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 回答
962 浏览

ado.net - 您可以将 ADO.NET SQLCommandBuilder 与复合键一起使用吗?

我有一个包含 6 列的数据库表。主键是由 6 列中的 5 列组成的复合键

我正在尝试使用SqlClient.SqlCommandBuilder.GetDeleteCommand删除该行。

但是我收到以下错误:

“System.InvalidOperationException:对于不返回任何键列信息的 SelectCommand,不支持为 DeleteCommand 生成动态 SQL。”

包含表中的SelectCommmand所有列:

问题可能出在复合键上吗?

0 投票
5 回答
9752 浏览

c# - 报表查看器 - 请求 SqlClientPermission 类型的权限失败

我在本地模式下使用 Visual Studio 2008 中的 ReportViewer 控件,并将对象作为数据源。我的类被映射到我的数据库中的数据表。在对象中,它根据需要加载相关对象。因此,在您尝试使用该属性之前,它会保留引用为空,然后它会尝试自动从数据库中加载它。这些类使用 System.Data.SqlClient 命名空间。

当我与 Windows 窗体应用程序中的对象交互时,一切都按预期工作。但是当我传递要用作报表数据源的对象并尝试自动加载相关对象时,它会失败。该代码创建了一个 SqlConnection 对象,当我在其上调用 GetCommand() 时,会引发以下异常:

我尝试搜索错误,但显示的所有结果都是针对在 SQL Server 或 ASP.Net 上运行的 CLR 程序集。在创建 SqlConnection 对象之前,我尝试在我的代码中添加以下调用(如搜索结果中所建议的那样),但它显然没有做任何事情:

有任何想法吗?

0 投票
2 回答
674 浏览

sql-server - 使用带有 sql server 2005 的 sqlclient 数据提供程序而不是 oledb 数据提供程序的好处

最近我想从 oledb 数据提供者转移到 sqlclient,因为我使用 sql server 2005 express edition 作为我的应用程序的后端,其中包含数百万条记录。

谁能给我同样的具体理由

请尽快回复

0 投票
6 回答
711 浏览

asp.net - 如何在 VB.Net 或 ASP.Net 中创建 Windows 应用程序

从某个数据库表导入数据时,使用哪种方法效率更高:DataAdapter 和 DataSet 还是 DataReader?

0 投票
7 回答
13257 浏览

.net - 我什么时候应该使用 Odbc、OleDb、SQLClient?有哪些取舍

我从一个 SQLServer 数据库开始。所以看起来我应该使用System.Data.SqlClient命名空间。但是,我们可能会关闭 SqlServer 数据库并转到 MySql 或 Oracle。出于这个原因,我提出了一套关于我们的 .Net 应用程序如何与数据库通信的标准,以便将来在需要时更容易迁移到不同的数据库系统。

所以这里是标准:

  1. 尽可能使用 ORM(例如 NHibernate)(没有 LINQ,因为它只支持 SqlServer,但是实体框架及其对 Oracle 和 MySql 的支持呢?)
  2. 如果 ORM 是一种过度杀戮,那么使用参数化 SQL 查询。
  3. 仅将存储过程用于需要在数据库上执行的长时间运行或复杂的操作。

这让我想到了我手头的主要问题。 我应该使用哪个命名空间来编码我的 DAL?

在我看来,选择在System.Data.ODBC和之间System.Data.OleDB

  • 有哪些取舍?
  • 一个比另一个更受欢迎吗?
  • 您对前 3 个标准有何看法?
0 投票
2 回答
932 浏览

c# - 多个异步 SqlClient 操作 - 寻找一个很好的例子

我从一开始就在我的 WinForms 客户端中使用异步操作,但仅用于某些操作。当ExecuteReaderorExecuteNonQuery完成时,回调委托触发并且一切正常。

我基本上有两个问题:

1)在现实生活系统中处理这个问题的最佳结构是什么?我看到的所有示例都是玩具示例,其中表单处理操作完成,然后在EndExecuteReader. 当然,这意味着表单与数据库的耦合比您通常想要的更紧密。而且,当然,表单总是可以很容易地调用.Invoke自己。我已将所有异步对象设置为从一个AsyncCtrlBlock<T>类继承,并将表单和所有回调委托提供给我的 DAL 中异步对象的构造函数。

2)我将重新访问当前不是异步的程序的一部分。它连续进行两次调用。当第一个完成时,可以填充模型的一部分。当第二部分完成时,模型的剩余部分可以完成 - 但前提是第一部分已经完成。构建这个的最佳方法是什么?如果可以完成第一次读取并且在启动第二次读取时正在进行由于第一次读取而导致的处理,那就太好了,但是我不希望在我知道第二次读取的处理之前开始第二次读取的处理第一次读取的数据已经完成。

0 投票
1 回答
1382 浏览

c# - DbParameter IsNullable 功能?

我在 ADO.Net 中使用的参数不多。我正在编写一个自定义的 .Net 数据提供程序(以 SqlClient 为模型),并且必须在我的参数类中实现 IsNullable 属性,该属性继承自 DbParameter。我的数据提供者不支持存储过程,所以我只支持输入(替换样式)参数。

MSDN 文档对 IsNullable 的功能相当不清楚,指出“获取或设置一个值,指示参数是否接受空值”。谷歌搜索发现很多人对 IsNullable 的作用感到困惑,他们说将 IsNullable 设置为 false 并不禁止他们使用参数,这将是一个空值,正如他们所期望的那样。

基于此,我认为 IsNullable 属性可能与存储过程的使用有关,以及存储过程的参数是否可以为空,而不是参数值是否可以为空。

在这种情况下,由于我没有存储过程,我的实现可以是:

为了避免不得不摆弄一些测试代码来了解 SqlParameter 的 IsNullable 实现如何工作,如果有使用参数编写代码的经验的人可以解释 IsNullable,我将不胜感激。

0 投票
1 回答
2249 浏览

sql-server - 仅在将 ADO.NET 与 SqlClient 一起使用时,与 SQL Server 2005 的连接速度非常慢

我有一个全新的服务器,带有 Windows 2008 Server 64 位 + SQL Server 2005 Standard Edition SP3。

当我尝试从同一域中的客户端(Windows XP、.Net 3.5)打开到该服务器的连接时,打开连接大约需要 20 秒。

打开连接后,一切都像往常一样快。

使用 MDAC 2.8 连接或 ADO.NET OleDb 时,完全没有问题。

如何找到连接缓慢的原因?

0 投票
3 回答
1490 浏览

asp.net - 通过反射加载的程序集中的 SqlClientPermission 失败

我遇到一个问题真的很艰难。我有一个我刚刚修改过的 Web 应用程序,它允许客户提供自定义程序集,他们可以使用这些程序集连接到实体保存管道。当实体持久保存到数据库时,这些自定义程序集通过反射加载。它们指的是处理所有数据访问的通用 DAL 程序集。

我有一个测试服务器(Win2k3),这个系统可以完美运行。现在我已经将它推送到我的生产服务器集群(一个 Win2k3 和一个 Win2k8),我的自定义程序集在它第一次调用访问数据库的 DAL 方法(SQL2005)时就崩溃了。我收集的日志信息表明获取 SqlClientPermission 失败。与最佳实践相反,我的 Web 应用程序在完全信任下运行。我的自定义程序集是强命名的。

有什么建议可以让我在哪里查找测试服务器配置和生产服务器配置之间的差异?如果这不是正确的论坛,那是哪一个?

谢谢,马修

0 投票
1 回答
1827 浏览

asp.net - 在 Asp.net MVC 中手动连接到数据库

是否可以使用 sqlclient 和 sqlconnection(即标准 ADO.net 方式)手动连接到数据库,而不是在 Asp.Net MVC 中使用 LINQ 或实体框架?

请指导我谢谢