我已阅读此处的所有相关帖子以及其他论坛上的许多其他讨论,但仍无法解决我的问题。
我将SQL Server CE应用程序从WindowsCE设备移植到Win 7.感兴趣的代码是使用SqlCeRemoteDataAccess.Pull
从SQL Server数据库远程下载表。
WinCE设备上的原始代码如下:
SqlCeRemoteDataAccess.Pull(Tablename, sql, _remoteConnectionString, RdaTrackoption.TrackingOffWithIndexes, "ErrorTable")
从Visual Studio 2012在Win7上运行时,它会抱怨:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
我仔细检查了我的本地和远程数据库。它们没有被破坏。然后我搜索了互联网和这个论坛,并尝试了建议的解决方案:更改连接字符串:
Provider=PROVIDER;Data Source=Src;User ID=SUser;Password=1234;Initial Catalog=ABCD_EF;
要:
Provider=PROVIDER;Data Source=Src;User ID=SUser;Password=1234;Initial Catalog=ABCD_EF;Integrated Security=SSPI;
现在我得到了:
用户''登录失败。用户未与受信任的SQL Server连接关联。
我还在上面的连接字符串中添加了Trusted_Connection=Yes
或Trusted_Connection=True
,并看到了相同的错误。有什么建议 ?谢谢。
注意:服务器已设置为混合模式:Windows和SQL Server身份验证。
新更新:我使用C#对设备和Win7进行编程。远程数据服务器代理位于sqlcesa30.dll(Microsoft SQL Server Compact Edition Server Agent 3.0)中。以下是使用的连接字符串和我收到的错误消息:
(1)在WinCE设备上运行的原始设备,但在Win 7上我得到了:
Provider=PROVIDER;Data Source=Src;User ID=SUser;Password=1234;Initial Catalog=ABCD_EF;
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
(2)在Win 7上我得到了:
Provider=PROVIDER;Data Source=Src;Initial Catalog=ABCD_EF;Integrated Security=SSPI;
Login failed for user ''. The user is not associated with a trusted SQL Server connection.
(3)在Win 7上我得到了:
Provider=PROVIDER;Data Source=Src;User ID=SUser;Password=1234;Initial Catalog=ABCD_EF;Integrated Security=SSPI;
Login failed for user ''. The user is not associated with a trusted SQL Server connection.
答案 0 :(得分:0)
您不能一次在连接字符串中 Integrated Security=SSPI;
和 User ID=SUser;Password=1234
。 选择一个:
使用集成安全性(推荐)来使用您当前的凭据 - 但是必须从连接字符串中移除 UserID=...;Password=....
部分
或者您使用特定的用户和密码 - 在这种情况下,添加集成安全性或可信连接是没有用的,因为将使用UserID=...;Password=...
设置
因此,如果您已正确设置集成安全性,请使用:
Data Source=Src;Initial Catalog=ABCD_EF;Integrated Security=SSPI;
作为您的连接字符串。