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

时间:2015-09-04 17:52:18

标签: c# winforms combobox

我正在尝试将列名值绑定到组合框中,但是我收到了错误。我做错了什么?

我在这一行"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);
        }

    }

1 个答案:

答案 0 :(得分:0)

请参阅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中获取第一列。