Есть ли какой-либо запрос для поиска в базе данных значения, которое было заменено другим значением
Я создал две таблицы в базе данных sql и соединил их с помощью joins.В этой таблице есть таблица Products, в этой колонке есть P_active с char(1) и значением по умолчанию как '
Y
'.Во время отображения в режиме таблицы, столбец состояние показывает 'Y
- но я хочу показать ... Active
- вместо того, чтобы ... Y
'.Я сделал это, но проблема заключается в том,что во время поиска, в текстовом поле, если я ввожу 'Active
- или любое другое письмо a/c/t/i/v/e
и нажмите на кнопку поиск, записи с 'Active
- статус должен быть показан, но, к сожалению, я не получаю никаких записей, найденных, если я ввожу какое-либо письмо, кроме ... Y
Итак, как достичь требуемой функциональности с помощью запроса.Что я уже пробовал:
КОД CS:
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(); }
БАЛАНС:
public DataTable Search(string option, string val) { return dll.search(option, val); }
ДАЛМАТИНЕЦ:
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
Gerry Schmitz
Вы создаете вторичный индекс со всеми значениями, которые вы хотите разрешить в "Y".