无法接受数据库的服务器名称

时间:2015-12-10 12:55:20

标签: c# sql asp.net

我试图在asp.net中使用sql连接到我的数据库,但我不能。它告诉我服务器名称有错误,因为下面代码中的服务器名称有斜杠,但这是我的实际服务器名称。 我怎么解决这个问题?我正在使用C#

protected void Page_Load(object sender, EventArgs e)
{         
    SqlConnection conn = new SqlConnection("Server=ALLOOLATY\JASMINE;Integrated Security=SSPI;Database=toys;");
try
{
    conn.Open();
    SqlCommand comm = new SqlCommand("SELECT name, id FROM product1", conn);
    SqlDataReader reader = comm.ExecuteReader();
    while (reader.Read())
    {
        employeesLabel.Text += reader["name"] + "<br />";
    }    
    reader.Close();
}

3 个答案:

答案 0 :(得分:2)

反斜杠字符\是一个特殊字符,如果你想在字符串中使用它,你需要像\\一样进行转义:

"Server=ALLOOLATY\\JASMINE;Integrated Security=SSPI;Database=toys;"

或者您可以通过在@前加上

作为整个字符串文字
@"Server=ALLOOLATY\JASMINE;Integrated Security=SSPI;Database=toys;"

此外,它看起来不像一个有效的连接字符串。试试这个:

@"Data Source=ALLOOLATY\JASMINE;Initial Catalog=toys;Integrated Security=True"

答案 1 :(得分:1)

不要在代码中存储连接字符串。移动数据库服务器将需要代码更新和部署。在web.config中存储连接字符串。见How to: Read Connection Strings from the Web.config File。我还鼓励通过SqlConnectionStringBuilder路由已配置的连接字符串进行清理。

SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(
     connectionStrings.ConnectionStrings["MyConnectionString"]);   
using (SqlConnection conn = new SqlConnection(scsb.ConnectionString);
   {
        conn.Open();
        using (SqlCommand comm = new SqlCommand("SELECT name, id FROM product1", conn))
        {
           using (SqlDataReader reader = comm.ExecuteReader())
           {
              while (reader.Read())
              {
                     ...
              }
           }
        }
    }

答案 2 :(得分:0)

在服务器名称中使用双斜杠代替单斜杠:

SqlConnection conn = new SqlConnection("Server=ALLOOLATY\\JASMINE;Integrated Security=SSPI;Database=toys;");