void AutoCompleteText()
{
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection coll = new AutoCompleteStringCollection();
string query = "select * from Book;";
OracleConnection con = new OracleConnection(ConString);
OracleCommand cmd = new OracleCommand(query, con);
OracleDataReader myReader;
try
{
con.Open();
myReader = cmd.ExecuteReader();
while (myReader.Read())
{
string sName = myReader.GetString("Title");
coll.Add(sName);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
textBox1.AutoCompleteCustomSource = coll;
}
在表格Book中我有一个名为Title的列,我想在我在textbox1中搜索时建议我,假设我在textbox1中写了A,那么它会自动弹出所有以A开头的标题Oracle数据库。
但是通过实现代码我得到了以下错误:
错误-1:'System.Data.Common.DbDataReader.GetString(int)'的最佳重载方法匹配有一些无效的参数
错误-2:参数1:无法从'string'转换为'int'
答案 0 :(得分:0)
GetString
以int
为参数。您正在尝试传递string
。您可以使用GetOrdinal
获取指定列的列序号:
while (myReader.Read())
{
string sName = myReader.GetString(myReader.GetOrdinal("Title"));
coll.Add(sName);
}
或者,这也应该有效:
string sName = (string) myReader["Title"];