1

試験中に教師を試験会場に割り当てる vb アプリケーションを作成しています。空室状況に基づいて教師を部屋に割り当てたいです。これまでのところ、データの入力をcsvファイルとして取得し、アクセステーブルに保存して、教師と部屋の数を数えることができました. しかし、データベースの異なるテーブルに保存した部屋に教師を割り当てる方法がわかりません。どうすればいいですか?私が行き詰まっているのを助けてください。

 Private Sub btnTeachersUpload_Click(sender As System.Object, e As System.EventArgs) Handles btnTeachersUpload.Click

    ODTeachers.ShowDialog()
    fileNameTeachers = ODTeachers.FileName
    lblTeacherPath.Text = fileNameTeachers

    teacher_Name = readFromCsv(teacher_Name, 0, fileNameTeachers)
    department = readFromCsv(department, 1, fileNameTeachers)
    phoneno = readFromCsv(phoneno, 2, fileNameTeachers)
    email_id = readFromCsv(email_id, 3, fileNameTeachers)
    teachers_availability = readFromCsv(teachers_availability, 4, fileNameTeachers)

    addToDb("teachers", "teacher_name", teacher_Name)
    addToDb("teachers", "department", department)
    addToDb("teachers", "email_id", email_id)
    addToDb("teachers", "phone_number", phoneno)
    addToDb("teachers", "availability", teachers_availability)
End Sub

Private Sub btnTeachersCompute_Click(sender As System.Object, e As System.EventArgs) Handles btnTeachersCompute.Click
    connect()
    Dim rs As New ADODB.Recordset
    rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient
    rs.CursorType = ADODB.CursorTypeEnum.adOpenStatic
    rs.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic
    rs.Open("select * from teachers where `availability` = 'yes'", cn)
    rs.ActiveConnection = Nothing

    no_of_avail_teachers = rs.RecordCount
    txtTeachers.Text = no_of_avail_teachers
    cn.Close()
End Sub

Public Function readFromCsv(arr() As String, ByVal index As Integer, ByVal filename As String)
    Using ioReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(filename)

        ioReader.TextFieldType = FileIO.FieldType.Delimited
        ioReader.SetDelimiters(",")

        While Not ioReader.EndOfData

            Dim arrCurrentRow As String() = ioReader.ReadFields()

            If arr Is Nothing Then

                ReDim Preserve arr(0)

                arr(0) = arrCurrentRow(index)

            Else

                ReDim Preserve arr(arr.Length)

                arr(arr.Length - 1) = arrCurrentRow(index)
            End If
        End While
    End Using
    Return arr
End Function

Public Sub addToDb(ByVal tablename As String, ByVal fieldname As String, ByVal arr() As String)
    Dim strSql As String
    connect()

    Dim rs As New ADODB.Recordset
    rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient
    rs.CursorType = ADODB.CursorTypeEnum.adOpenStatic
    rs.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic
    rs.Open("select * from " & tablename & "", cn)
    rs.ActiveConnection = Nothing

    For i = 0 To arr.Length - 1 Step 1
        strSql = "INSERT INTO " & tablename & " (" & fieldname & ") VALUES ('" & arr(i) & "')"
        cn.Execute(strSql)
    Next
    cn.Close()
End Sub

これは私がこれまで行ってきたことです。その一部を掲載しました。入力としてExcelシートを受け入れ、データベースに保存しています。

部屋に教師を割り当てるのに助けが必要です。部屋の部分のコードは似ています。利用可能な教師を利用可能な部屋に割り当てる必要があります。

私の教師データベースは次のようになります

teachers_name    availability
 vagarth             yes
 gaurav              no
 nymisha             yes

私の部屋のデータベースは次のようになります

rooms            availability
S203                 yes
H405                 no
S304                 yes
4

0 に答える 0