Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建自动完成文本框_C#_Winforms - Fatal编程技术网

C# 创建自动完成文本框

C# 创建自动完成文本框,c#,winforms,C#,Winforms,这里是创建的方法,我得到一个错误,我似乎不明白它是如何产生的,请帮助!!错误是“System.Data.Common.DbDataReader.GetString(int)”的最佳重载方法匹配,该方法具有一些无效参数 void AutoCompleteText() { search_txt.AutoCompleteMode = AutoCompleteMode.SuggestAppend; search_txt.AutoCompleteSource = A

这里是创建的方法,我得到一个错误,我似乎不明白它是如何产生的,请帮助!!错误是“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();

    }
方法接受一个
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);
            ...
        }
     }
}
应该在结果集中的第二列中返回值(在本例中为列CCLname)。

可能是这样的

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

这是我获取的错误行/列不存在数据这是获取ConnectionString属性未初始化的错误。@Elijahayeta..在
conDB.Open()之后使用我的代码
还要确保您仍然有
command.Connection=conDB@Elijahayeta。。。如果您想在不使用
的情况下使用
块的情况下使用代码,我发现您错过了
reader.Close()。在您的代码(您在问题中发布的代码)中添加
reader.Close()
之后,而
在@Elijahayeta。。。当您使用
using
block时,不需要
myreader.Close()不再。你的答案中仍然有一个打字错误,阻止它编译。也许你应该再检查一下。耶。。。这就够了。谢谢你。
string sName = Convert.ToString(myreader.["CCLname"]);