HY,
我在MS Visual Studio 2012下使用SQL Server 2012。
以下是来自app.config的连接字符串
<add key="Platform" value="Data Source=Bigfoot2;Initial Catalog=Platform;Integrated Security=True"/>
和我的连接类
static SqlConnection con;
public static SqlConnection GetConnection()
{
con = new SqlConnection(ConfigurationManager.AppSettings["Platform"].ToString());
return con;
}
internal void AddCustomer (Buyer customer, User user, PlatformType type )
{
SqlConnection conn = DALConnection.GetConnection();
try
{
SqlCommand cmd = new SqlCommand("InsertCustomer", conn);
cmd.CommandType = CommandType.StoredProcedure;
...
con.Open();
cmd.ExecuteNonQuery();
我的数据库存储在我的项目文件夹中。
我尝试使用我的方法时得到的错误是:
无法打开与SQL Server 2012的连接
此致
答案 0 :(得分:0)
您的连接对象错误,您在命令中传递conn
,而对于打开连接,您使用con
对象而不是conn
:
con.Open();
使用:
conn.Open();
你的代码就像:
try
{
SqlCommand cmd = new SqlCommand("InsertCustomer", conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
cmd.ExecuteNonQuery();
}
答案 1 :(得分:0)
虽然您的代码存在一些问题,但它似乎应该有效
尝试使用独立的连接工具测试连接字符串
要测试connection string
,请查看this SO thread。
正如@hvd在其中一条评论中提到的那样,您的代码会让您感到困惑,因为con
等同于conn
。这使您的代码难以遵循。我建议你重构它,以便你(和其他人)更容易理解。
答案 2 :(得分:0)
试试这个:
<add key="Platform" value="Data Source=.\Bigfoot2;Initial Catalog=Platform;Integrated Security=True"/>
答案 3 :(得分:0)
如果您的SQL Server与Visual Studio或应用程序位于不同的计算机上,是否在Windows防火墙中打开了所需的端口?