我使用以下代码在单击按钮时将sqlite数据库中的一组项加载到datagrid视图!当在代码中给出数据库的路径时,数据库成功连接并加载数据。
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 :(得分:2)
问题是你在表单初始化时设置它,其中textbox仍为空并且你设置了它的值。
在加载数据的相同按钮的Click事件或文本框的textchanged事件上设置dbconnection = @"Data Source="+dbtext.Text+";version=3";
。
答案 1 :(得分: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
}