如何从数据库中获取数据

时间:2015-10-02 08:06:42

标签: c# visual-studio-2010

我无法将数据从表格获取到列表框。我尝试按名称查询书籍并将其放入列表框,但它始终返回书籍不可用,我不确切地知道我的代码有什么问题。这是代码:

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 - 输入字符串的格式不正确。

2 个答案:

答案 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+ "%");
相关问题