Member 14832867 Ответов: 1

Результат набора данных кажется неправильным


Dim y As Integer
For y = 0 To student.Tables(0).Rows.Count.ToString() - 1

    Dim cmd As New SqlCommand("dbo.Test", conn)
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.AddWithValue("@student_id", student.Tables(0).Rows(y).Item("student_id"))
    cmd.Connection = conn
    Dim studentMark As DataSet = New DataSet()
    Dim da As SqlDataAdapter = New SqlDataAdapter("dbo.Test", conn)
    da.SelectCommand = cmd
    da.Fill(studentMark)

.
.
.

Dim fail As String = "null"


If Not studentMark.Tables(0).Rows.Count.ToString() = 0 Then
    fail = studentMark.Tables(0).Rows(0).Item("studentMark").ToString()
End If


Что я уже пробовал:

Если studentMark = fail он вернет null, но для результата pass он также вернет null, а не "pass"

1 Ответов

Рейтинг:
0

MadMyche

Ваше сравнение происходит между целым числом и строкой, поэтому оно всегда должно быть ложным
"0" != 0

If Not studentMark.Tables(0).Rows.Count.ToString() = 0 Then
Обычно я проверяю такую таблицу данных, чтобы убедиться, что она не является нулевой и имеет содержимое
Пожалуйста, обратите внимание: это C# и основано на DataTable - вам нужно будет настроить
DataTable dt = null;

// populate dt from database

if ((dt != null) && (dt.Rows.Count > 0)) {
  // get the values you need
}