我有一个名为comboBox2的combox,我想用我的数据库表名为'Student_Table'的名为'Stud_Name'的列填充这个组合框 我使用以下代码:
void Fillcombo()
{
string constring = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\ChaCha\\ChaCha\\chacha.mdf;Integrated Security=False";
string query = "select * from database.Student_Table";
SqlConnection condb = new SqlConnection(constring);
SqlCommand cmddb = new SqlCommand(query, condb);
SqlDataReader myreader;
try
{
condb.Open();
myreader = cmddb.ExecuteReader();
while(myreader.Read())
{
string sName = myreader.GetString("Stud_Name");
comboBox2.Items.Add(sName);
}
}
catch (Exception ex)
{
}
}
但是,我收到如下错误消息:
最佳重载方法匹配 'System.Data.Common.DbDataReader.GetString(int)'有一些无效 参数。
如何删除此错误? 我使用Visual Studio 2012。
答案 0 :(得分:1)
错误信息清楚地说明;
SqlDataReader.GetString
method没有重载需要string
作为参数。
此方法将int
作为参数,该参数是您要获取的从零开始的列的数量。
您需要在查询中输入Stud_Name
列号的整数值。
例如;如果您的Stud_Name
是query
的第一列,则可以像使用它一样使用
string sName = myreader.GetString(0);
还可以使用using
statement处理您的SqlConnection
,SqlCommand
和SqlDataReader
。
答案 1 :(得分:1)
您的问题是传递给名为GetString
的方法的参数。你应该传递列的索引,你要读取。您可以传递列的名称,而不是这样做。这就是您收到此错误消息的原因。
有关更多文档,请查看here。