Luiey Ichigo Ответов: 1

Получить имя столбца и значение из программы чтения инструкций SQL в C#


Ребята,

У меня есть подзапросы select, которые получают подсчет из нескольких таблиц. Я определяю каждый итог как нечто имя. Как получить имя каждого столбца и его значение? Должен ли я вручную указывать каждое имя из графа?

Private Function ShowTotalCount()
    Dim rdr As SqlDataReader
    Dim cmd As SqlCommand = Nothing
    Dim totcount As Integer = 0
    Dim CommandText As String = "SELECT
    (SELECT COUNT(*) FROM [dbo].[MyDownTime]) as count_mydowntime,
    (SELECT COUNT(*) FROM [dbo].[MyDownTime]) as count_mydowntime,
    (SELECT COUNT(*) FROM [dbo].[MyOutput]) as count_myoutput,
    (SELECT COUNT(*) FROM [dbo].[MySpeed]) as count_myspeed,
    (SELECT COUNT(*) FROM [dbo].[MyTemperature]) as count_mytemperature,
    (SELECT COUNT(*) FROM [dbo].[MyUtility]) as count_myutility"
        objlocalconn.Open()
        cmd = New SqlCommand(CommandText, objlocalconn)
        cmd.CommandType = CommandType.Text
        rdr = cmd.ExecuteReader()
        If rdr.HasRows Then
            Do While rdr.Read()
                Console.WriteLine("{0} - {1}", rdr["count_mydowntime"], Convert.ToInt32(rdr.GetValue(0)))
    Loop
        End If
End Function


Я обнаружил, что в основном просто передаю значение как из одного возвращаемого числа. Но как насчет того, чтобы запросы имели "как", как
(select count(*) AS viewthis1),select count(*) AS viewthis2)
там, где я хочу его читать в объект sqldatareader из viewthis1 и viewthis2

1 Ответов

Рейтинг:
0

njammy

Попробуйте сделать это в цикле While, чтобы выполнить итерацию по каждому столбцу каждой строки независимо от имени столбца. Если вам нужно получить доступ только к определенным столбцам, Укажите имя столбца вместо его индекса:

For i = 0 To rdr.FieldCount - 1
    Console.WriteLine(rdr.GetName(i), dr(i)))
Next


Maciej Los

5ед!