Я создал таблицу в базе данных sql с несколькими столбцами. При этом один столбец - это P_active с char (1) и значением по умолчанию как «Y». При отображении в виде таблицы столбец состояния показывает «Y», ноЯ хочу показать «Active» вместо «Y». Я сделал это, но проблема заключается в поиске, в текстовом поле, если я ввожу «Active» или любую букву a / c / t / i / v / e и нажимаю напоиск, записи с активным статусом должны быть показаны, но, к сожалению, я не получаю записи, если я ввожу любую букву, кроме «Y». Так как этого добиться?
CS CODE:
protected void GridView1_RowDataBound(object sender,GridViewRowEventArgs e)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (drv["P_active"].ToString() == "Y")
e.Row.Cells[4].Text = "Active";
}
}
protected void btnsearch_Click(object sender, EventArgs e)
{
if (ddlsearch.SelectedItem.Text == "Product Name")
{
GridView1.DataSource = bll.Search("P_name", txtsearch.Text);
}
else if (ddlsearch.SelectedItem.Text == "Status")
{
GridView1.DataSource = bll.Search("P_active", txtsearch.Text);
}
GridView1.DataBind();
}
BAL:
public DataTable Search(string option, string val)
{
return dll.search(option, val);
}
DAL:
public DataTable search(string searchBy, string searchVal)
{
SqlCommand cmd = new SqlCommand("spsearchp", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@SearchBy", searchBy);
cmd.Parameters.AddWithValue("@SearchVal", searchVal);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
Хранимая процедура:
CREATE PROC [dbo].[spsearchp]
@SearchBy varchar(50),
@SearchVal varchar(50)
AS
BEGIN
IF @SearchBy = 'P_name'
BEGIN
select * from Products LEFT JOIN Category ON Products.PCid= Category.cid where P_name like '%' + @SearchVal + '%'
END
ELSE IF @SearchBy = 'P_active'
BEGIN
select * from Products LEFT JOIN Category ON Products.PCid= Category.cid WHERE P_active like '%' + @SearchVal + '%'
END
ELSE
BEGIN
select * from Products LEFT JOIN Category ON Products.PCid= Category.cid
END
END