无法打开与SQL Server 2012的连接

时间:2014-05-11 07:10:24

标签: c# sql sql-server

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的连接

此致

4 个答案:

答案 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防火墙中打开了所需的端口?

尝试以下步骤: http://blog.sujay.sarma.in/2013/12/19/SCRIPT-Open-ports-in-Windows-Firewall-for-SQL-Server-connectivity