0
Я использую следующую функцию для создания списка пользователей, подключенных к выбранной базе данных. Как я могу изменить это на одну строку для нескольких одинаковых результатов? Например: «sa (3) - MYCOMPUTER», а не «sa - MYCOMPUTER» три раза?Выход форматирования данных чтения
Function ConnectedUsers(ByVal SelectedDatabase As String, ByVal SelectedInstance As String)
Dim myCommand As SqlCommand
Dim dr As SqlDataReader
Dim mystring As String = String.Empty
Try
Dim myConn As New SqlConnection(ConnectionString)
myConn.Open()
myCommand = New SqlCommand("select loginame,hostname from sysprocesses where db_name(dbid) = '" & SelectedDatabase & ";", myConn)
dr = myCommand.ExecuteReader()
While dr.Read()
mystring += GetFullName(dr(0).ToString().Trim()) & " - " & dr(1).Trim() & vbCrLf
End While
dr.Close()
myConn.Close()
Catch e As Exception
MessageBox.Show(e.Message)
End Try
Return mystring
End Function
Thanks.
Благодаря MJB, я вижу - сделать счет как часть оператора sql, а не по возвращенным результатам. является синтаксисом, правильным для утверждения? Я получаю «Столбец sysprocesses.hostname» недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY ». – madlan
Я не думаю, что при использовании Count можно возвращать более одного столбца? – madlan
SELECT loginame, hostname, COUNT (loginame) AS Nbr из sysprocesses, где db_name (dbid) = '"& SelectedDatabase &"' GROUP BY loginame, hostname; – madlan