这基本上是一个搜索工具。当我在组合框中输入某些内容时,组合框会下拉并显示建议(类似于 Google 搜索栏)
我创建了一个执行一些复杂计算的过程,它采用一个参数并返回一些行。然后我创建了一个组合框事件(更新文本)。
在事件处理程序中,我编写了以下代码:
private void combobox_TextUpdate(object sender, EventArgs e)
{
this.combobox.Items.Clear();
DataTable List = new DataTable();
if (this.combobox.Text.Length > 0)
{
List = searchIt(combobox.text);
foreach (DataRow Row in List.Rows)
{
this.combobox.Items.Add(Row.ItemArray.GetValue(0).ToString());
}
this.combobox.DroppedDown = true;
}
}
static public DataTable searchIt(string STR)
{
string connectionString = McFarlaneIndustriesPOSnamespace.Properties.Settings.Default.McFarlane_IndustriesConnectionString;
SqlConnection con = new SqlConnection(connectionString);
DataTable DT = new DataTable();
con.Open();
SqlDataAdapter DA = new SqlDataAdapter("USE [McFarlane Industries] " +
"EXEC search " +
STR, connectionString);
DA.Fill(DT);
con.Close();
return DT;
}
该函数searchIt
执行存储过程并返回一个DataTable
. 存储过程在 SQL Server Management Studio 中运行良好。
但在应用程序中,它在某些情况下无法正常工作。
当我键入[space]时,它会抛出一个异常,并说存储过程需要未提供的参数。
当我键入许多其他字符时,它会在字符串“我的字符串”末尾抛出无效字符的异常。
任何建议我如何才能实现我的目标。