[英]Having trouble connecting to a SQL Server database file. What am I doing wrong?
因此,我有了一個(有效的) .MDF
數據庫文件(SQL Server)。 但是,當我嘗試訪問它( 此處第32行)或此處較小的上下文時...
private void loadDataBaseButton_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string databasePath = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
//SqlConnection dataBaseConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlConnection dataBaseConnection = new SqlConnection(string.Format(@"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30;User Instance=True", databasePath));
try
{
dataBaseConnection.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
但是,它將引發異常。 具體來說是
錯誤26-錯誤定位指定的服務器/實例
建立與SQL Server的連接時發生與網絡相關或特定於實例的錯誤。 服務器未找到或無法訪問。 驗證實例名稱正確,並且已將SQL Server配置為允許遠程連接。 (提供程序:SQL網絡接口,錯誤:26-錯誤定位指定的服務器/實例)
.MDF
文件有效,據我所知其他所有內容似乎.MDF
簽出。 我該如何解決?
在您的代碼問題是連接字符串。
connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20180630124430.mdf;Initial Catalog=aspnet-WebApplication1-20180630124430;Integrated Security=True"
如果使用附加的.mdf文件,則這是當前連接字符串。 如果您連接到sql server,則連接字符串為
data source=DHARMESH-PC;initial catalog=AdventureWorks;user id=sa;password=sa123
希望這個能對您有所幫助
謝謝
更新:-
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string databasePath = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
string dbname = openFileDialog1.FileName.Split('.')[0];
//SqlConnection dataBaseConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30;User Instance=True");
string connection = @"Data Source=(LocalDb)\v11.0;AttachDbFilename=" + databasePath + ";Initial Catalog=" + dbname + ";Integrated Security=True";
SqlConnection dataBaseConnection = new SqlConnection(connection);
try
{
dataBaseConnection.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我已經更新了您的代碼。
您只需選擇MDF文件。
我相信,如果您嘗試連接到“ SQLEXPRESS”,則意味着您正在本地運行SQL Server Express並附加數據庫
我已經能夠使用如下連接字符串成功訪問localdb MDF文件:
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDBFile.mdf;Integrated Security=True" providerName="System.Data.SqlClient"
您還應該驗證文件是否在預期的“ DataDirectory”中。
如果您正在使用
用戶實例= true
您必須使用命名管道,以便您的連接將從:
.\SQLEXPRESS
至
.\\SQLEXPRESS
用戶實例的網絡協議必須是本地命名管道。 無法在SQL Server的遠程實例上啟動用戶實例,並且不允許SQL Server登錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.