2015-11-19 43 views
0

我已经示例数据库Northwind安装和连接到C#项目错误连接到本地数据库con.open()

我试图连接到数据库,并在数据库中检索表的列名,但我发现,而试图打开连接,这里的错误是我使用这样做代码:

public void connectToDB() 
{ 
    Dictionary<object, object> colns = new Dictionary<object, object>(); 
    List<string> colnNames = new List<string>(); 
    con = new SqlConnection("Data Source = .NorthwindDB.mdf; Integrated Security=True"); 
    con.Open(); 
    cmd = con.CreateCommand(); 
    cmd.CommandText = "SELECT * FROM Products"; 
    adapter = new SqlDataAdapter(cmd); 
    ds = new DataSet(); 
    adapter.Fill(ds); 
    dt = ds.Tables["Products"]; 
    foreach(DataRow dr in dt.Rows) 
    { 
     foreach(DataColumn dc in dr.Table.Columns) 
     { 
      colnNames.Add(dc.ColumnName.ToString()); 
     } 
    } 
    foreach(string key in colnNames) 
    { 
     Console.WriteLine(key.ToString()); 
    } 
    Console.ReadKey(); 
} 

,我发现了以下错误:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

另一件可能有用的事情,我注意到,只要点击start按钮执行代码,数据连接NorthwindDB.mdf上出现的绿色插头就会变成红色x。

+0

'NorthwindDB.mdf'不是'Data Source'。 –

+0

你能解释一下吗?那它是什么?我是新来的这种编程语言:) @ user2946329 –

+0

对不起delay @ user2946329,我已经找到了一种方法来从mdf文件的属性面板中复制它,以获得connectionString值,我只在内部添加了双斜杠路径字符串。无论如何非常感谢您的帮助和耐心。 –

回答

3

连接字符串是不正确,应该是这样的:

con = new SqlConnection("Data Source=(local);" + 
         "Initial Catalog=NorthwindDB.mdf;Integrated Security=True"); 
// Or Data Source=.\\sqlexpress; 

您可以在此处详细了解连接字符串:Database Connectionstrings