Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# | MS Sql | - Запрос в базу данных

Алексей Знатачек Знаток (354), на голосовании 6 лет назад
private bool PoiskIdVBaze(string s)
{
bool istina_id = false;

SqlCommand Poisk_id = new SqlCommand("SELECT * FROM [ParserDB] WHERE IdZadaniya = @Id_Zadaniya", sqlConnection);
Poisk_id.Parameters.AddWithValue("Id_Zadaniya", s);
int Kol_id = Poisk_id.ExecuteNonQuery();

if (Kol_id == 0)
{
istina_id = true;
}

return istina_id;

} // Поиск id в базе
Дополнен 6 лет назад
В чём ошибка? Вот что получаю https://i.stack.imgur.com/UFNdn.png
Дополнен 6 лет назад
Голосование за лучший ответ
Александр Просветленный (20767) 6 лет назад
Ошибка в том, что запрос ничего не знает о переменной Id_Zadaniya. У класса SqlCommand есть свойство Parameters, там и инициализируй свою переменную.
Алексей ЗнатачекЗнаток (354) 6 лет назад
Есть параметр Poisk_id.Parameters.AddWithValue("Id_Zadaniya", s);
Максим Искусственный Интеллект (198724) 6 лет назад
Имя параметра включает знак @, который отсутствует.
Имена переменных лучше писать с маленькой буквы и не на русском.
SqlCommand cmd = new SqlCommand("SELECT * FROM [ParserDB] WHERE IdZadaniya = @id", sqlConnection);
cmd.Parameters.AddWithValue("@id", s);
SELECT с применением ExecuteNonQuery не имеет смысла, так как это выполнение нужно для таких операций как UPDATE и не возвращает результат. Используй ExecuteReader.
Алексей ЗнатачекЗнаток (354) 6 лет назад
Есть параметр Poisk_id.Parameters.AddWithValue("Id_Zadaniya", s);
Максим Искусственный Интеллект (198724) Я кажется написал про знак @ и даже привёл код...
Алексей ЗнатачекЗнаток (354) 6 лет назад
Вот, всё работает !

private bool PoiskIdVBaze(string s)
{
bool istina_id = false;

SqlCommand Poisk_id = new SqlCommand("SELECT * FROM [ParserDB] WHERE IdZadaniya = @Id_Zadaniya", sqlConnection);
Poisk_id.Parameters.AddWithValue("Id_Zadaniya", s);
int Kol_id = Convert.ToInt32(Poisk_id.ExecuteScalar());

if (Kol_id == 0)
{
istina_id = true;
}

return istina_id;
Максим Искусственный Интеллект (198724) Для подсчёта нужно использовать COUNT(*), а не *.
Похожие вопросы