2017-04-08 142 views
0

我搜索了半天如何設置我的數據庫的路徑,所以如果我把它放在另一臺計算機上它將工作。我會一直使用谷歌搜索,但我真的需要非常快的答案......我將不得不在幾個小時內將它用於比賽。C#mdf本地數據庫

string path = Path.Combine(Application.StartupPath, "Database1.mdf"); 

SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + path + ";"); 
conn.Open(); 

SqlCommand command = new SqlCommand("SELECT NAME FROM DATA", conn); 

SqlDataReader reader = command.ExecuteReader(); 

while(reader.Read()) 
{ 
    string text = reader.GetString(0); 
    MessageBox.Show(text); 
} 

SqlCommand c = new SqlCommand("INSERT INTO DATA (id, name) VALUES(i, v)", conn); 
c.Parameters.AddWithValue("@i", 1); 
c.Parameters.AddWithValue("@v", "Jack"); 

c.ExecuteNonQuery(); 

conn.Dispose(); 

此代碼適用於選擇,但不適用於插入。然後,我將路徑硬編碼爲:

String s = @"C:\Users\Radu\Documents\Visual Studio 2013\Projects\WindowsFormsApplication7\WindowsFormsApplication7\Database1.mdf"; 

它適用於兩者,因此它不是SQL語句錯誤。

所以我的問題是:我應該把什麼路徑放到我的SqlConnection對象中,以便當他們在我的競爭對手上獲得我的源代碼並在另一臺PC上測試它時,它將起作用。

+1

目標計算機也必須SQL服務器的版本,你正在運行並使用作爲一個連接字符串你的問題。你確定目標PC正在運行LocalDB嗎? –

回答

0

LocalDB僅用於開發。你不能在生產中使用它。就你而言,'生產'意味着競爭。除非競賽組織者指定他們支持SQL Server實例供您連接併發布連接參數(即不太可能),否則不應在項目中使用SQL Server。