Я пытаюсь получить возвращаемый счетчик запроса. В моем случае всегда будет 0 или 1. Я вставляю клиента в свою базу данных, я есть или нет, они уже существуют, если они делают, я генерирую исключение, если не вставляю. Это то, что у меня есть:Получение возврата Count of Select SQL Server
string selectQuery = "select ([Cust_Num]) from [TBL_Customer] where [Cust_Num] = '" + myTable.Rows[i][custNum] + "'";
SqlCommand sqlCmdSelect = new SqlCommand(selectQuery, sqlConn);
sqlCmdSelect.Connection.Open();
sqlCmdSelect.ExecuteNonQuery();
//checks if query returned anything
int queryCount = Convert.ToInt32(sqlCmdSelect.ExecuteScalar());
sqlCmdSelect.Connection.Close();
Сейчас queryCount
возвращает 0
, если он не существует в моей таблице. Но он возвращает номер клиента, если он существует. Поэтому вместо возврата 1
он возвращает 123456
, который является номером клиентов .....
Кто-нибудь знает, почему это происходит?
* (не связанные непосредственно с вашей проблемы) * [Ваш код может быть уязвимы для атак SQL Injection] (http://stackoverflow.com/questions/332365/how-does-the-sql- инъекции из-за-Бобби-столы-XKCD-комической работа). Вы должны параметризовать свой запрос. –
(Также не был напрямую связан, но последний парень сделал это :) бросая исключение, чтобы справиться с известным случаем, это плохая форма. Кроме того, исключения являются дорогостоящими. – THBBFT
Хорошо, что тогда было бы подходящим действием? Мне любопытно сейчас @THBBFT – codeFinatic