Я создал окно поиска с помощью текстового поля и кнопки управления для поиска данных в моем GridView, для источника данных Я использую ObjectDataSource. В классе ObjectDataSource я использую параметризованную процедуру для выбора данных из таблицы базы данных, но проблема здесь возникла, ObjectDataSource ожидает значение для класса параметров. Я решил это с помощью hardcoded класса, если он равен нулю, значение параметра равно пробелу, оно работает хорошо.Поле поиска Gridview в ASP.NET
Если есть другой способ решить эту проблему без HARDCODED класса, любые ответы были бы полезны, спасибо
Вот мой ObjectDataSource Select Class
public static List<T_Penerbit> GetSearchPenerbit(string Cari)
{
if (string.IsNullOrWhiteSpace(Cari))
{
Cari = " ";
}
List<T_Penerbit> listSearchPenerbit = new List<T_Penerbit>();
string cs = ConfigurationManager.ConnectionStrings["cs_perpustakaan"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("spGetPenerbitBySearch", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter paramSearch = new SqlParameter("@parameter", Cari);
cmd.Parameters.Add(paramSearch);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
T_Penerbit penerbit = new T_Penerbit();
penerbit.ID = Convert.ToInt32(rdr["ID"]);
penerbit.Penerbit = rdr["Nama_Penerbit"].ToString();
penerbit.Kota = rdr["Kota"].ToString();
penerbit.Handphone = rdr["Handphone"].ToString();
penerbit.Email = rdr["Email"].ToString();
listSearchPenerbit.Add(penerbit);
}
}
return listSearchPenerbit;
}
И вот моя кнопка поиска Нажмите событие
protected void ButtonKelolaDataPenerbitCariPenerbit_Click(object sender, EventArgs e)
{
ObjectDataSourceCariDataPenerbit.SelectParameters.Clear();
ObjectDataSourceCariDataPenerbit.SelectParameters.Add("Cari", TextBoxKelolaDataPenerbitCariPenerbit.Text);
ObjectDataSourceCariDataPenerbit.DataBind();
}
Это широко открыты для SQL инъекций. Я не рекомендую этого делать. –
Спасибо за ответ, это лучший способ сделать это? потому что я использую ObjectDataSource и storedProcedure для предотвращения SQL-инъекции – Agustyan