我正在使用C#,SQL Server CE,VS 2010开发一个应用程序,并且我可以选择搜索记录。
如果我搜索具有大写字符的数据,我会得到记录,但当我尝试使用小型上限时,我没有得到任何记录。
我的要求与上述SQL查询一样
SELECT top ({0}) name FROM Expenses WHERE name like '%{1}%'
以小写字母提供输入时的屏幕截图。
以大写字母提供输入时的屏幕截图。
代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection();
SqlCeConnection con = new SqlCeConnection(@"Data Source=|DataDirectory|\Database\Acadamy.sdf;Persist Security Info=False");
con.Open();
SqlCeCommand cmnd = con.CreateCommand();
cmnd.CommandType = CommandType.Text;
var fetchAmount = 10;
var userInput = textBox1.Text.Trim();
cmnd.CommandText = string.Format("SELECT top ({0}) name FROM Expenses WHERE name like '%{1}%'",
fetchAmount, userInput);
SqlCeDataReader dReader;
dReader = cmnd.ExecuteReader();
if (dReader.Read())
{
while (dReader.Read())
namesCollection.Add(dReader["name"].ToString());
}
//else
//{
// MessageBox.Show(@"Data not found");
//}
dReader.Close();
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteCustomSource = namesCollection;
}
代码有什么问题?
答案 0 :(得分:0)
试试这个
cmnd.CommandText = string.Format("SELECT top ({0}) name FROM Expenses WHERE name like '%{1}%'", fetchAmount, userInput).ToUpper();