Я использую VS2005 C # и SQL Server 2005.
У меня есть несколько запросов SQL, в которые я преобразую их, используя параметры вместо конкатенаций для предотвращения внедрения SQL.
Ниже приведен SELECTзапрос с параметром-редактором:
string loggedinuser = (User.Identity.Name);
SqlDataSource1.SelectCommand = "SELECT * FROM [UserTable] where [" + DropDownList1.Text + "] like @searchtb AND [LoggedInUser] LIKE @userlog";
SqlDataSource1.SelectParameters.Add("searchtb", "%" + searchTB.Text + "%");
SqlDataSource1.SelectParameters.Add("userlog", "%" + loggedinuser+ "%");
Приведенный выше SQL-запрос ищет записи на основе ввода пользователя в текстовом поле поиска и возвращает результаты, которые соответствуют входным данным поиска и имени пользователя в базе данных.
У меня есть другой запрос SQL, который также является оператором SELECT .Однако на этот раз он не использует SqlDataSource
, а использует cmd
.Поэтому мне нужна помощь в преобразовании приведенного ниже оператора SQL в форму параметра:
string loggedinuser = (User.Identity.Name);
string stmt = "SET ROWCOUNT 1 SELECT COUNT(*) FROM MP.dbo.UserTable where [" + DropDownList1.Text + "] like '%" + searchTB.Text + "%' AND [LoggedInUser] LIKE '%"+loggedinuser +"%'";
int count = 0;
using (SqlCommand cmdCount = new SqlCommand(stmt, thisConnection))
{
thisConnection.Open();
count = (int)cmdCount.ExecuteScalar();
thisConnection.Close();
}
Этот запрос SQL ищет количество записей, которые пользователь пытается найти, основываясь на его входных данных для поиска и имени пользователя.И если countuser
вернет значение 0, я после этого предложу пользователю.
Мне нужна помощь в преобразовании 2-го оператора SQL в форму параметра.
Спасибо.