如何将数据库值绑定到 Windows 应用程序中的组合框

本文关键字:应用程序 组合 Windows 数据库 绑定 | 更新日期: 2023-09-27 18:34:51

我正在我的 Windows 应用程序中使用 Combobox 并将值绑定到数据库中的组合框,如下所示

public void LoadDatsbaseNames()
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        using (SqlDataAdapter da = new SqlDataAdapter("SELECT name FROM sys.databases ORDER BY name", connection))
        {
            DataTable dt = new DataTable();
            da.Fill(dt);
            DataRow dr;
            dr = dt.NewRow();
            dr.ItemArray = new object[] { 0, "---Select--" };
            dt.Rows.InsertAt(dr, 0);
            cbDBName.DisplayMember = "name";
            cbDBName.DataSource = dt;
            connection.Close();
        }
    }
}

但是上述方法显示错误

输入数组的长度大于此表中的列数。

如何将数据库值绑定到 Windows 应用程序中的组合框

如果您只想绑定组合框,则不需要创建 DataRow,因为 DataTable 已经填充了数据,您只需将其与组合框绑定即可。

using (SqlDataAdapter da = new SqlDataAdapter("SELECT name FROM sys.databases ORDER BY name", connection))
{
    DataTable dt = new DataTable();
    da.Fill(dt);
    cbDBName.DisplayMember = "name";
    cbDBName.DataSource = dt;
    connection.Close();
}
此外,您

不需要手动关闭连接,因为您正在使用using statement它会解决这个问题。

 private void BindVendorDDL()
        {
            ddlVendor.Items.Clear();
            DataTable dt = new DataTable();
            dt = bl.BindCompanyDLL();
            if (dt.Rows.Count > 0)
            {
                ddlVendor.Text = "--Select--";
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    ddlVendor.Items.Add(dt.Rows[i]["Vendor_name"].ToString());
                }
            }
        }