-1

我是 C# 新手,所以如果答案很明显,请原谅我,如果 c.CompanyName 在 textBox1 中包含给定文本,我想连接到我的 SQL Server Management Studio 并在列表视图中显示项目。可能有错误,但我找不到。帮助感激不尽。

SqlConnection cnn = new SqlConnection("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;");

private void button1_Click(object sender, EventArgs e)
{
    cnn.Open();
    SqlCommand cmd = new SqlCommand("SELECT c.CompanyName, o.Freight FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID WHERE c.CompanyName LIKE %@recherche%", cnn);

    cmd.Parameters.AddWithValue("@recherche", textBox1.Text);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        while (dr.Read())
        {
            string companyname = dr.GetString(0);
            string salary = dr.GetDecimal(1).ToString();

            ListViewItem rowadd = listView1.Items.Add(companyname);
            rowadd.SubItems.Add(salary);
        }
    }

    cnn.Close();
}
4

2 回答 2

0

试试这个:

SqlCommand cmd = new SqlCommand("SELECT c.CompanyName, o.Freight FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID WHERE c.CompanyName LIKE @recherche", cnn);
cmd.Parameters.AddWithValue("@recherche", "%" + textBox1.Text + "%");
于 2013-09-01T15:10:36.497 回答
0

将您的命令更改为:

SqlCommand cmd = new SqlCommand("
    SELECT c.CompanyName, o.Freight
    FROM Customers c
        INNER JOIN Orders o ON c.CustomerID = o.CustomerID
    WHERE c.CompanyName LIKE '%' + @recherche + '%'
", cnn);
于 2013-09-01T15:29:42.787 回答