c#数据源不能为空

时间:2017-08-28 09:38:35

标签: c# sqlite input textbox datasource

我使用以下代码在单击按钮时将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";
        }

如何更正此问题?

2 个答案:

答案 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
}