Ответ 1
Строка, используемая для инициализации SqlDataAdapter, становится CommandText
свойства SelectCommand для SqlDataAdapter.
Вы можете добавить параметры к этой команде с помощью этого кода
da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search",
_mssqlCon.connection);
da.SelectCommand.Parameters.AddWithValue("@search","%" + txtSearch.Text + "%");
- Сначала удалите одиночную кавычку вокруг заполнитель параметров.
- Во-вторых, добавьте символ подстановки непосредственно в параметр Value AddWithValue
Вы попросили использовать AddWithValue, но помните, что, хотя это полезный ярлык, есть также многочисленные недостатки и все хорошо документированные.
- Сначала: Можем ли мы прекратить использование AddWithValue() уже?, где автор обсуждает, как AddWithValue может дать неверные результаты в вашем запросы
- Второе: Как код доступа к данным влияет на производительность базы данных, где автор представляет доказательства сильных проблем с производительностью для AddWithValue
Таким образом, тот же код без AddWithValue и с помощью синтаксиса Object and Collection Initialators может быть записан как
da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search",
_mssqlCon.connection);
da.SelectCommand.Parameters.Add(new SqlParameter
{
ParameterName = "@search",
Value = "%" + txtSearch.Text + "%",
SqlDbType = SqlDbType.NVarChar,
Size = 2000 // Assuming a 2000 char size of the field annotation (-1 for MAX)
});