我无法将数据从表格获取到列表框。我尝试按名称查询书籍并将其放入列表框,但它始终返回书籍不可用,我不确切地知道我的代码有什么问题。这是代码:
try
{
conn.Open();
_listbox.Items.Clear();
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM buku WHERE nama LIKE '%@bookname%'", conn);
cmd.Parameters.Add("@bookname", _search);
SqlCeDataReader r = cmd.ExecuteResultSet(ResultSetOptions.Scrollable);
if (r.HasRows)
{
while (r.Read())
{
_listbox.Items.Add(r[0].ToString());
}
}
else
{
_listbox.Items.Add("Book Not Available");
}
}
我试图像这样进行查询:
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM buku WHERE nama LIKE '%'+@bookname+'%'", conn);
错误讯息:
@bookname:Q - 输入字符串的格式不正确。
答案 0 :(得分:2)
尝试:
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM buku WHERE nama LIKE @bookname", conn);
cmd.Parameters.Add("@bookname","%"+ _search+"%");
由于您使用参数,因此不必引用参数。
此外,由于您只使用结果的第一个字段,我会写信选择如下:
"SELECT fieldImInterestedIn FROM buku WHERE nama LIKE @bookname"
答案 1 :(得分:0)
按以下步骤操作,
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM buku WHERE nama LIKE @bookname", conn);
cmd.Parameters.AddWithValue("@bookname", "%"+ _search+ "%");