如何将数据库值绑定到 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();
}
}
}
但是上述方法显示错误
输入数组的长度大于此表中的列数。
如果您只想绑定组合框,则不需要创建 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());
}
}
}