我需要传递用户名和密码,以便任何用户都可以在数据库上运行存储过程。在我的网络配置中,我将代码设置为此
<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连接,现在我收到了这个错误:
连接超时已过期。尝试使用登录前握手确认时超时时间已过 这可能是因为登录前握手失败或服务器无法及时响应 尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 3672;握手= 0;
这对我来说很奇怪,因为我将超时设置为0,如果我理解正确应将其设置为非超时
CommandTimeout = 0;
答案 0 :(得分:1)
web.config中的连接字符串通常是这样的:
<connectionStrings>
<add
name="connectionStringName"
connectionString="Data Source=serverName;Initial
Catalog=yourDatabase;Persist Security Info=True;User
ID=userName;Password=password"
providerName="System.Data.SqlClient"
/>
然后读取连接,如:
System.Configuration.ConfigurationManager.
ConnectionStrings["connectionStringName"].ConnectionString;
按照以下步骤连接到SQL Server:
1-单击visual studio中的Server Explorer,然后单击它,将显示添加连接。
2-输入您的服务器名称和密码,然后单击“确定”。
3-转到属性并复制连接字符串。
4-粘贴复制的连接字符串
connectionString="copied connection string"
答案 1 :(得分:1)
首先,在 web.config 中,您必须添加 appSettings ,然后添加下一个:
<connectionStrings>
<add name="Connection1" connectionString="Server=validserver;uid=validuserid;pwd=validpassword;database=validdatabase"/>
</connectionStrings>
然后在你的页面中:
using System.Web.Configuration;
您的连接字符串将是:
string ConnectionString = WebConfigurationManager.ConnectionStrings["Connection1"].ConnectionString;