我无法弄清楚这个异常的问题是什么.
'System.Data.SqlClient.SqlConnection'的类型初始值设定项引发了异常
第一次尝试:我正在使用WCF服务来制作一些小应用程序.它工作得很好,我可以正确使用LINQ.2或3天后.也许在我关闭Visual Studio并再次加载项目之后.出现异常.
第二次尝试也一样.我创建了另一个项目,它工作得很好,直到我做其他事情(我不更改任何代码)
SQL Server工作正常,我可以通过SQL Management Studio连接没有问题.
单击Debug错误会将我引导至linq文件的连接字符串.
可能是什么问题呢?我试图搜索但找不到解决这个问题的答案.
谢谢
System.Data.SqlClient.SqlCommand有方法
BeginExecuteNonQuery
BeginExecuteReader
BeginExecuteXmlReader
Run Code Online (Sandbox Code Playgroud)
和
EndExecuteNonQuery
EndExecuteReader
EndExecuteXmlReader
Run Code Online (Sandbox Code Playgroud)
用于异步执行.
System.Data.IDbCommand只有
ExecuteNonQuery
ExecuteReader
ExecuteXmlReader
Run Code Online (Sandbox Code Playgroud)
它们仅用于同步操作.
是否有任何异步操作接口?
另外,为什么没有BeginExecuteScalar?
我正在玩F#中使用SqlClient而且我在使用时遇到了困难SqlDataReader.ReadAsync.我正在尝试做F#等价的
while (await reader.ReadAsync) { ... }
在F#中做到这一点的最佳方法是什么?以下是我的完整计划.它有效,但我想知道是否有更好的方法来做到这一点.
open System
open System.Data.SqlClient
open System.Threading.Tasks
let connectionString = "Server=.;Integrated Security=SSPI"
module Async =
let AwaitVoidTask : (Task -> Async<unit>) =
Async.AwaitIAsyncResult >> Async.Ignore
// QUESTION: Is this idiomatic F#? Is there a more generally-used way of doing this?
let rec While (predicateFn : unit -> Async<bool>) (action : unit -> unit) : Async<unit> =
async {
let! b = predicateFn()
match b with
| true -> action(); do! While …Run Code Online (Sandbox Code Playgroud) 我想在mono下运行这个功能(我目前的版本是4.0.2)
public Object GetConnectionProperty(SqlConnection _conn, string prop)
{
if (_conn.State == ConnectionState.Closed &
prop == "ServerVersion")
return string.Empty;
if (prop == "ClientConnectionId")
{
Guid guid = _conn.ClientConnectionId;
return guid.ToString();
}
return _conn.GetType().GetProperty(prop).GetValue(_conn);
}
Run Code Online (Sandbox Code Playgroud)
但它失败了,错误:
error CS1061: Type `System.Data.SqlClient.SqlConnection' does not contain a
definition for `ClientConnectionId' and no extension method
`ClientConnectionId' of type `System.Data.SqlClient.SqlConnection' could be
found. Are you missing an assembly reference?
Run Code Online (Sandbox Code Playgroud)
Mono相当于ClientConnectionId什么?或者我该如何解决?
我将我的项目从 ASP.NET Core 2.2 迁移到 ASP.NET Core 3.0。现在我得到了这个例外。在 ASP.NET Core 2.2 中,它使用FromSql(); 现在它正在使用FromSqlRaw(). 我正在使用 Entity Framework Core 调用我的过程。
SqlParameter Username = new SqlParameter
{
ParameterName = "USERNAME",
SqlDbType = SqlDbType.NVarChar,
Value = user.Username,
Direction = ParameterDirection.Input,
Size = 50
};
SqlParameter Password = new SqlParameter
{
ParameterName = "PASSWORD",
SqlDbType = SqlDbType.NVarChar,
Value = user.Password,
Direction = ParameterDirection.Input,
Size = 50
};
SqlParameter msgOut = new SqlParameter
{
ParameterName = "MSG",
SqlDbType = SqlDbType.NVarChar,
Direction = …Run Code Online (Sandbox Code Playgroud) 升级后Microsoft.Data.SqlClient Version=4.0.0出现错误:
已成功与服务器建立连接,但登录过程中出现错误。(提供程序:SSL 提供程序,错误:0 - 目标主体名称不正确。
我查找了重大更改https://github.com/dotnet/SqlClient/pull/1210,然后Encrypt=False在连接字符串中进行设置,但是错误仍然相同。
仅通过恢复到错误才消失2.0.1
有人可以建议如何解决该问题吗4.0.0?
我开始使用SQLServer数据库.所以我似乎应该使用System.Data.SqlClient命名空间.但是,我们有可能关闭我们的SqlServer数据库并转到MySql或Oracle.出于这个原因,我提出了一套关于我们的.Net应用程序如何与数据库通信的标准,以便在将来我们需要时更容易迁移到不同的数据库系统.
所以这是标准:
这让我想到了我的主要问题. 我应该使用哪个命名空间来编写DAL代码?
在我看来,选择是在System.Data.ODBC和之间System.Data.OleDB:
解决了我在这里提到的问题后,我得到了以下异常
System.IO.FileNotFoundException:'无法加载文件或程序集'System.Data.SqlClient,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.'
我的库是.NET Standard 1.4,WebApp是.NET Framework 4.6.1
System.Data.SqlClient是版本 - 4.3.0 NuGet包.所以我尝试了以下但是徒劳:
<dependentAssembly>
<assemblyIdentity name="System.Data.SqlClient" culture="neutral" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="4.1.0.0" newVersion="4.3.0.0"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud) 自从将Windows 10更新到1803以来,我已经开始接收此错误,只要我运行一个EF查询,该查询连接一个带有标量参数的表值函数.
消息:传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确.参数2(""):数据类型0x00未知.
堆栈跟踪:位于System.Threading.Tasks.Task.Execute()的System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()中的System.Data.SqlClient.SqlCommand.<> c.b__180_0(Task1结果).从抛出异常的先前位置开始的堆栈跟踪结束---在System.Data.Entity.Core.EntityClient的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处.Internal.EntityCommandDefinition.d__c.MoveNext()
我在.NET 4.6框架项目中使用Entity Framework v6.2.我验证了相同的代码在使用Windows 10 1709的另一台计算机上执行没有问题.我将计算机更新到Windows 10 1803而没有其他更改,我开始收到上述错误.导致错误的代码:
var query = from fs in db.ViewWithInformation
join e in db.GetEventsForPerson(personnelId) on fs.Event_Id equals e.Event_Id
where !fs.Is_Deleted
select fs;
return await query.ToArrayAsync();
Run Code Online (Sandbox Code Playgroud)
如果我针对db.GetEventsForPerson删除连接,则查询将运行.上面的EF查询生成的SQL在SSMS中运行良好.
编辑5/15/2018:我已经确认这是由.NET Framework 4.7.2特别引起的.我在Windows 10 1709计算机上手动安装了.NET 4.7.2,错误再次启动.
在 .Net Core 2.0 中使用 System.Data.SqlClient.dll 时出现版本冲突错误。它看起来像是 Core dll 和 NetStandard dll 之间的冲突。不知道为什么提到
"System.Data.SqlClient,版本=4.5.0.0
这是不存在的。
Web 应用程序调用业务库,业务库又调用 DAL。DAL 正在使用 System.Data.SqlClient.dll。全部都在 .Net Core2.0 中。
你能帮忙吗?
这是错误。
1> “System.Data.SqlClient, Version=4.2.0.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”和“System.Data.SqlClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”之间存在冲突. 1> "System.Data.SqlClient, Version=4.2.0.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 被选中是因为它是主要的并且 "System.Data.SqlClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a" “ 不是。1> 依赖于“System.Data.SqlClient, Version=4.2.0.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的参考文献[C:\Program Files\dotnet\sdk\NuGetFallbackFolder\system.data.sqlclient\4.4.3\ ref\netstandard2.0\System.Data.SqlClient.dll]。1> C:\Program Files\dotnet\sdk\NuGetFallbackFolder\system.data.sqlclient\4.4。3\ref\netstandard2.0\System.Data.SqlClient.dll 1> 项目文件项包括导致引用“C:\Program Files\dotnet\sdk\NuGetFallbackFolder\system.data.sqlclient\4.4.3\ref\netstandard2 .0\System.Data.SqlClient.dll”。1> C:\Program Files\dotnet\sdk\NuGetFallbackFolder\system.data.sqlclient\4.4.3\ref\netstandard2.0\System.Data.SqlClient.dll 1> 依赖于“System.Data.SqlClient,版本=4.5.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”[]。1> D:\Projects.Net Core\Test Apps\Postsharp\SmartBank.Web\SmartBank.Core.Business\SmartBank.Core.Business\bin\Debug\netcoreapp2.0\SmartBank.Core.DAL.dll 1> 项目文件项目包括导致引用“D:\Projects.Net Core\Test Apps\Postsharp\SmartBank.Web\SmartBank.Core.Business\SmartBank.Core.
sqlclient ×10
c# ×5
sql-server ×3
.net ×2
asynchronous ×2
.net-4.7.2 ×1
asp.net ×1
asp.net-core ×1
database ×1
exception ×1
f# ×1
interface ×1
linq ×1
mono ×1
odbc ×1
oledb ×1
sql ×1
wcf ×1