Существует ли какой-либо поисковый запрос для поиска в базе данных значения, которое было заменено другим значением - PullRequest
0 голосов
/ 16 апреля 2019

Я создал таблицу в базе данных 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...