【问题标题】:Error : "Fill: SelectCommand.Connection property has not been initialized."错误:“填充:SelectCommand.Connection 属性尚未初始化。”
【发布时间】:2011-08-10 16:03:53
【问题描述】:

我在尝试将 mysql 数据库连接到编辑器时遇到此错误,这是背后的代码:

protected void Button1_Click(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    MySqlConnection conn = new MySqlConnection(@"connection string");//tested and working
    conn.Open();

    MySqlCommand cmd = new MySqlCommand("SELECT tes FROM ins");
    MySqlDataAdapter da = new MySqlDataAdapter(cmd);

    da.SelectCommand = cmd;
    da.Fill(dt);


    if (dt.Rows.Count > 0)
    {
        Editor1.Content = dt.Rows[0]["tes"].ToString();
    }
    conn.Close();

}

这里是aspx页面代码:

<body>
<form id="form1" runat="server">


<cc1:Editor ID="Editor1" runat="server" Height="400px" Visible="true" />

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</form>

我做错了什么,提前谢谢。

我正在使用 asp.net 3.5。

【问题讨论】:

    标签: asp.net mysql data-binding


    【解决方案1】:

    换行

    MySqlCommand cmd = new MySqlCommand("SELECT tes FROM ins");
    

    MySqlCommand cmd = new MySqlCommand("SELECT tes FROM ins", conn);
    

    它应该可以工作。

    或者将 conn 分配给 cmd.Connection 属性。

    您的代码的问题是您从未为命令分配连接,因此错误提示连接未初始化。

    【讨论】:

      【解决方案2】:

      试试这个

      MySqlCommand cmd = new MySqlCommand("SELECT tes FROM ins",conn);
      

      MySqlCommand cmd = new MySqlCommand("SELECT tes FROM ins");
      cmd.Connection=conn;
      

      【讨论】:

        【解决方案3】:

        我也遇到了这个问题。搜索问题后发现我提供的 SqlDataAdapter 的连接对象未初始化,因此连接传递为 null

        【讨论】:

          【解决方案4】:

          遇到了同样的错误,只是忘记了上面提到的 SQL 字符串中的连接。只需要在逗号后面加上con即可。

          【讨论】:

          • 这只是重复一个现有的答案。