【问题标题】:Fill: SelectCommand.Connection property has not been initialized error填充:SelectCommand.Connection 属性未初始化错误
【发布时间】:2014-03-18 14:14:30
【问题描述】:

我试图在我的 c# windows 窗体项目中以datagridview 显示数据。我不断收到此错误

“填充:SelectCommand.Connection 属性尚未初始化”

这里有什么我做错了吗:

 private void Form1_Load(object sender, EventArgs e)
        {
             try
            {

                SqlCommand db = new SqlCommand("select * from Tbls");
                SqlDataAdapter sda = new SqlDataAdapter();
                sda.SelectCommand = db;
                DataTable dbdataset = new DataTable();

                sda.Fill(dbdataset);
                BindingSource bsource = new BindingSource();

                bsource.DataSource = dbdataset;
                dataGridView1.DataSource = bsource;
                sda.Update(dbdataset);

            } 
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

【问题讨论】:

  • 哈比布、阿奎那和我似乎都给了你非常相似的解决方案。他们工作了吗?

标签: c# sql-server


【解决方案1】:

您必须将SqlConnection 对象分配给您的SqlCommand 对象。

db.Connection = conn;

其中conn 是您的SqlConnection 对象。

像这样初始化你的 SqlConnection 对象:

var conn = new SqlConnection(/*Connection String*/);

【讨论】:

    【解决方案2】:

    你创建一个新命令:

    SqlCommand db = new SqlCommand("select * from Tbls");
    

    但是,您使用的是什么 SqlConnection?你不。您需要创建一个带有连接的命令。通常,您从SqlConnection 执行此操作,请参阅:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.createcommand(v=vs.110).aspx

    【讨论】: