c#数据源不能为空

c#数据源不能为空,c#,sqlite,input,textbox,datasource,C#,Sqlite,Input,Textbox,Datasource,我使用以下代码在点击按钮时将sqlite数据库中的一组项加载到datagrid视图中!当数据库的路径如代码中所示时,数据库成功连接并加载数据 public Form1() { InitializeComponent(); dbconnection = @" Data Source = D:\SQLite\SQLiteStudio\DB1.db ; version=3 "; } 但是,当我通过获取文本框输入的路径来

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

如何更正此问题?

问题在于,您正在表单初始化时设置它,此时textbox仍然为空,您可以设置它的值


设置
dbconnection=@“数据源=“+dbtext.Text+”“版本=3”加载数据的同一按钮的单击事件或文本框的文本更改事件。

您正在程序的构造函数中设置连接字符串:

public Form1()
{
    InitializeComponent();
    dbconnection = @"Data Source="+dbtext.Text+";version=3";
}
此时
文本框仍然为空,变量
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
}
(在调试器中检查它)

现在,您正试图在按钮单击事件上建立连接,但连接到何处?相反,您的代码应该如下所示:

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

以及
dbtext.text的文本是什么?文本框中的路径是在什么位置输入的?在程序已经启动之后?如果是这样,则该值实际上永远不会传递给连接字符串。@AshkanMobayenKhiabani文本框中有测试D:\SQLite\SQLiteStudio\DB1。db@waka启动程序后,只给出文本