从数据库读取时出错

时间:2013-07-29 20:03:16

标签: wpf

我是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);
        }`

2 个答案:

答案 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)