如何将数据库表列名值绑定到windows窗体组合框

本文关键字:绑定 windows 窗体 组合 数据库 | 更新日期: 2023-09-27 18:11:11

我试图将列名值绑定到组合框,但我得到一个错误。我做错了什么?

这一行出现了错误"string sName = MyReader.GetString("Part#");"

Error message: 
Error   1   The best overloaded method match for 'System.Data.Common.DbDataReader.GetString(int)' has some invalid arguments
Error   2   Argument 1: cannot convert from 'string' to 'int'   

.

    void FillComboBox()
    {
        SqlCommand cmd = new SqlCommand("select * from tblInventory", con);
        SqlDataReader MyReader;
        try
        {
            con.Open();
            MyReader = cmd.ExecuteReader();
            while (MyReader.Read())
            {
                string sName = MyReader.GetString("Part#");
                comboBox2.Items.Add(sName);
            }

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

如何将数据库表列名值绑定到windows窗体组合框

查看GetString的文档:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader%28v=vs.110%29.aspx

在代码中使用select *是不好的。想象一下,如果DBA向表中添加一个新列会发生什么——代码得到的内容超出了它的设计范围。指定需要的列:

select Part# from tblInventory
string sName = MyReader.GetString(0);

从select中获取第一列。