2017-08-28 121 views
1

下面的代碼被我用來在sqlite數據庫中將一組項目加載到一個datagrid視圖上,然後點擊按鈕!如代碼中給出的數據庫路徑,數據庫已成功連接並加載數據。c#數據源不能爲空

public Form1() 
     { 
      InitializeComponent(); 
      dbconnection = @" Data Source = D:\SQLite\SQLiteStudio\DB1.db ; version=3 "; 
     } 

但是當我改變代碼通過獲得路徑作爲文本框的輸入錯誤「數據源不能爲空」,如下所示進行。使用的文本框的名稱是dbtext,上面代碼中的相同路徑被複制並粘貼到文本框中!

public Form1() 
     { 
      InitializeComponent(); 
      dbconnection = @"Data Source="+dbtext.Text+";version=3"; 
     } 

我該如何解決這個問題?

+0

,什麼是dbtext.Text' –

+0

的'文字在被路徑進入文本框有什麼意義呢?該方案已經開始後?如果是這樣,該值確實從未傳遞給連接字符串。 – waka

+0

@AshkanMobayenKhiabani文本框已經測試D:\ SQLite \ SQLiteStudio \ DB1.db –

回答

2

問題是,您將其設置爲窗體初始化,其中文本框仍爲空,並且您設置了它的值。

設置爲dbconnection = @"Data Source="+dbtext.Text+";version=3";點擊加載數據的同一按鈕的Click事件或文本框的textchanged事件。

1

要設置在連接字符串中你的程序的構造函數:

public Form1() 
{ 
    InitializeComponent(); 
    dbconnection = @"Data Source="+dbtext.Text+";version=3"; 
} 

此時TextBox仍然是空的和可變dbconnection看起來就像這樣:

dbconnection = "DataSource=;version=3"; 

(檢查它在調試器中)。

現在,您正嘗試在您的按鈕點擊事件上建立連接,但到了哪裏?相反,你的代碼應該是這樣的:

priavte void Button1_Click(object sender, EventArgs e) 
{ 
    dbconnection = "Data Source="+dbtext.Text+";version=3"; 
    //Do stuff with the connection 
}