【发布时间】:2016-03-18 02:51:54
【问题描述】:
我需要传递用户名和密码,以便任何用户都可以在数据库上运行存储过程。在我的网络配置中,我将代码设置为此
<appSettings>
<add key="Connection1" value="server=validserver;database=validdatabase;uID=validuserid;password=validpassword;" />
</appSettings>
在我的 C# 中 - 我首先设置一个等于连接的变量,如下所示:
public const string MainDBConn = "Connection1";
任何时候我想使用这个连接字符串,我都会这样称呼它
RunSQLQuery(MainDBCon, "nameofstoredprocedure");
但是我不断收到这个错误,对我来说这是一个无效的连接字符串,但我的服务器名称、数据库、用户 ID 和密码都是有效的......
初始化字符串的格式不符合从索引 0 开始的规范
我要改变什么,以便在我的语法中使用这个连接字符串来连接到我的服务器实例?
编辑 将我的连接字符串更改为
ConfigurationManager.ConnectionStrings["Connection1"].ConnectionString;
现在产生以下错误:
与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。
服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。
(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
编辑 2
我按照@Khazratbek 在他的回答中的建议修改了我的 webconfig 连接,现在我收到了这个错误:
连接超时已过期。尝试使用登录前握手确认时超时时间已过。
这可能是因为登录前握手失败或服务器无法及时响应。
尝试连接到此服务器所花费的持续时间是 - [登录前] 初始化 = 3672;握手=0;
这对我来说很奇怪,因为我将超时设置为 0,如果我理解正确应该将其设置为非超时
CommandTimeout = 0;
【问题讨论】:
-
字符串 conString = WebConfigurationManager.ConnectionStrings["Connection1"].ConnectionString;
-
我相信您只是传递 MainDBConn 字符串常量来构建连接,而不是实际的连接字符串,这就是您收到错误的原因。
-
尝试检查 SQL Server 服务是否正在运行?此错误是因为 SQL 服务未运行或您的服务器名称不正确
-
@Smart - 服务正在我要连接的计算机/服务器上运行。我可以使用我尝试传递的凭据连接到服务器上的 SSMS。
标签: c# asp.net connection-string