【问题标题】:SqlException Error MessageSqlException 错误信息
【发布时间】:2012-01-27 15:51:53
【问题描述】:

我正在开发一个在 Windows Ce 6.0 上运行的应用程序,该应用程序应该连接到位于我的 PC 上的数据库。但每次我尝试打开连接时都会收到 SQLException 错误消息。这就是我打开连接的方式

..........
SqlConnection EdiSqlConnection;
String ConnectionString;
ConnectionString = "Server='serverName';Database=DatabaseName;Trusted_Connection=true;";
..........

EdiSqlConnection = new SqlConnection(ConnectionString);

try {
    EdiSqlConnection.Open();
    Output.Text = "Connected"; //this is a message to see that we are connected
}
catch (Exception ex) {
    Output.Text = "Message:   " + ex.Message;
    return;
} 

为什么我会收到错误消息?以及如何解决?

谢谢。

【问题讨论】:

  • 开始,删除try catch并查看异常提供的整个堆栈跟踪。这将有助于确定问题所在。如果您需要进一步的帮助,请编辑您的帖子以包含整个堆栈跟踪。
  • `catch 块中ex.Message 的值是多少?
  • 我得到的唯一输出是:Message: SqlException
  • 'servername' 和 'database' 是字符串中的实际值吗?或者你是否为了这篇文章对它们进行了清理?如果这些是实际值,我猜您的服务器的名称不是“servername”,而您的数据库的名称不是“databasename”。

标签: c# sql-server windows-ce sqlconnection


【解决方案1】:

此处信息不足,因此您需要提供更多信息。

  1. 抛出什么类型的异常?你确定它是SqlException 吗?您正在捕获所有异常。

  2. catch 块中ex.Message 的值是多少?

  3. 您要连接到哪个数据库? SQL Server(版本?)还是 SQL Compact?

假设您的应用程序和数据库在不同的机器上运行,您可能会遇到可信连接问题。您的 WinCE 设备不太可能位于域中或无法对用户进行身份验证,因此身份验证可能会失败。尝试改用 SSPI 身份验证。请参阅this page 上的“来自 CE 设备的可信连接”。请注意,您不必提供域用户 ID,只需提供在数据库服务器计算机上有效且对数据库具有访问权限的用户 ID 和密码。

【讨论】:

  • 显然我的代码是正确的,问题出在连接上,我的电脑运行的是 windows 7,我猜 windows 7 的安全性非常高,它不允许 windows ce 单元访问它,所以我现在必须弄清楚如何解决这个问题。
  • 尝试关闭 Windows 防火墙。如果这有帮助,则将其重新打开并为端口 1433 添加规则。还要检查 sql server 是否正在侦听 tcpip 端口。它默认发送。我仍然认为您会遇到受信任连接的问题,您可能不得不使用 sql server 身份验证。
【解决方案2】:

删除'serverName'中的引号

【讨论】:

  • 我仍然遇到同样的错误! SqlException....我想我应该提到我正在尝试无线连接到我的电脑...
  • 对不起,我花了这么长时间才回复你,显然我的代码是正确的,问题出在连接上,我的电脑运行的是 windows 7,我猜 windows 7 上的安全性非常高,并且它不允许 windows ce 单元访问它,所以我现在必须弄清楚如何解决它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2018-07-18
  • 2017-02-19
相关资源
最近更新 更多