我是WPF的新手。我收到以下错误:“System.Data.Common.DbDataReader.GetInt32的最佳重载消息匹配有一些无效的参数”
我的代码如下:
private void comboBoxDisplay_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string constring = "Data Source=tcp:******.database.windows.net;Initial Catalog=*****;Persist Security Info=True;User ID=*****;Password=******";
string Query = "select * from Rewards where Name='" + comboBoxDisplay.Text + "' ;";
SqlConnection conDataBase = new SqlConnection(constring);
SqlCommand cmdDataBase = new SqlCommand(Query, conDataBase);
SqlDataReader myReader;
try
{
conDataBase.Open();
myReader = cmdDataBase.ExecuteReader();
while (myReader.Read())
{
string sReid = myReader.GetInt32(0).ToString();
string sName = myReader.GetString(1);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}`
答案 0 :(得分:1)
GetXXX方法使用列号,而不是名称。如果你正在调用正确的方法,你也不需要施放。试试这个
while (myReader.Read())
{
string sReid = myReader.GetString(myReader.GetOrdinal("reID"));
string sName = myReader.GetString(myReader.GetOrdinal("Name"));
}
答案 1 :(得分:0)
System.Data.Common.DbDataReader.GetInt32方法需要一个整数,该整数是列的序数。没有重载方法将字符串作为参数。
myReader.GetInt32(2); // gets the 3rd column (zero based)