我正在尝试将列名值绑定到组合框中,但是我收到了错误。我做错了什么?
我在这一行"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);
}
}
答案 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中获取第一列。