繁体   English   中英

创建自动完成文本框

[英]Creating Auto complete textbox

这是创建的方法,我收到一个错误消息,我似乎不明白它是怎么发生的,请帮忙! 错误“ System.Data.Common.DbDataReader.GetString(int)”的最佳重载方法匹配,其中包含一些无效参数

void AutoCompleteText()
    {
        search_txt.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
        search_txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
        AutoCompleteStringCollection coll = new AutoCompleteStringCollection();

        OleDbCommand command = new OleDbCommand();
        command.Connection = conDB;
        command.CommandText = "select CCSpn_CODE,CCLname,CCFname,CCMname,CCDOB,CCgender,CCSchool,CaClass,CCVillage,CCSiblings,CCGuardian,CCContact,CCcurrentDt,CCImage from abaanaCC";
       // OleDbDataReader myreader;
        conDB.Open();


        OleDbDataReader myreader = command.ExecuteReader()


            while (myreader.Read())
            {
                //tring sName = myreader["CCLname"].ToString();
                string sName = myreader.GetString(1);
                //string sName = Convert.ToString(myreader.("CCLname"));
                coll.Add(sName);
            }

            search_txt.AutoCompleteCustomSource = coll;
            myreader.Close();


        conDB.Close();

    }

GetString方法接受一个int作为参数。 您需要像这样将指定列的索引发送到GetString

string sName = reader.GetString(1);

1表示第二列根据需要进行更改。

或者,您可以尝试以下操作:

string sName = reader["CCLname"].ToString();

要解决此错误:

行/列没有数据

您应该使用using块,因此您的代码应为:

string sqlCmD = "select CCSpn_CODE,CCLname,CCFname,CCMname,CCDOB,CCgender,CCSchool,CaClass,CCVillage,CCSiblings,CCGuardian,CCContact,CCcurrentDt,CCImage from abaanaCC";

using (OleDbConnection conDB = new OleDbConnection(address))
{
     OleDbCommand command = new OleDbCommand(sqlCmD, connection);

     conDB.Open();

     using(OleDbDataReader myreader = command.ExecuteReader())
     {
        if (myreader.Read())
        {
            string sName = myreader.GetString(1);
            ...
        }
     }
}
string sName = reader.GetString(1);

应该在结果集中的第二列(在您的情况下为CCLname列)中返回值。

也许这个

string sName = Convert.ToString(myreader.["CCLname"]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM