Хранение количества запросов в переменной vb - PullRequest
0 голосов
/ 17 сентября 2018

Я экспериментировал с тем, что я могу сделать с базой данных, но я не знаком с такими аспектами, как сохранение результата запроса в переменной.Я использовал этот фрагмент для запроса к моей базе данных с более чем одной записью, но результат, который я продолжаю получать, равен нулю.Может кто-нибудь объяснить, как это работает?Вот мой фрагмент ...

str = "SELECT COUNT(Nickname) FROM Backup"
cmd.CommandText = str
cmd.Connection = myConn
myConn.Open()
cntPlns = cmd.ExecuteNonQuery()
MessageBox.Show(cntPlns.ToString)

Соединение есть, но мой результат всегда выходит на ноль ... спасибо за любые предложения.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Вы должны звонить ExecuteScalar, а не ExecuteNonQuery. ExecuteNonQuery предназначен для выполнения незапрашиваемого запроса, то есть оператора SQL, который не создает результирующий набор. ExecuteScalar предназначен для выполнения запроса и извлечения скаляра, то есть одного значения, которое берется из первого столбца первой строки набора результатов, независимо от того, содержит ли этот набор результатов больше данных.

Для записи вы получаете ноль каждый раз, потому что ExecuteNonQuery возвращает количество строк, затронутых оператором SQL, где затронутые средства изменились. Оператор SELECT не влияет на строки, поэтому ноль - правильный результат.

Возможно, вам будет полезно проверить мои примеры ADO.NET , чтобы увидеть, какие объекты и члены использовать, где и когда.

0 голосов
/ 17 сентября 2018

См. ExecuteNonQuery не возвращает результаты для ... запрос не является правильным cmd.

Попробуйте это >>

str = "SELECT COUNT(Nickname) as myCount FROM Backup"
cmd.CommandText = str
cmd.Connection = myConn
myConn.Open()
Using cntPlns As SqlDataReader = command.ExecuteReader
        If cntPlns.Read Then
             MessageBox.Show(cntPlns.GetInt32(0).ToString)  ' the first column
        End If
End Using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...