テキストボックスに基づいてデータグリッドの行をフィルタリングしたいのですが、ストアドプロシージャを使用しているので、コードは次のようになります。
選択のためにストアドプロシージャでクエリを記述しました:
if @operation =1
select * from Item_Configuration where itemId like '%' + itemId + '%'
C#コードは
private void btnSrch_Click(object sender, EventArgs e)
{
SqlConnection conn1 = new SqlConnection();
try
{
SqlCommand selectItem = new SqlCommand("Item_Configuration_SP", conn1);
selectItem.CommandType = CommandType.StoredProcedure;
if (itemId.Text=="")
{
selectItem.Parameters.Add("@operation", SqlDbType.VarChar);
selectItem.Parameters["@operation"].Value = 1;
selectItem.Parameters.Add("@itemId", SqlDbType.VarChar);
selectItem.Parameters["@itemId"].Value = itmId.Text;
SqlDataReader myReader = selectItem.ExecuteReader();
List<Item> list = new List<Item>();
while (myReader.Read())
{
if (myReader.HasRows)
{
Item item = new Item();
item = MapItem(myReader, item);
list.Add(item);
}
}
dataGridView1.DataSource = list;
}
}
}
今、私はグリッド上のすべてのレコードを取得します。レコードはテキストボックスに基づいてフィルタリングされていません。間違っている場所を見つけることができません。助けてください