-1

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 に答える