試験中に教師を試験会場に割り当てる 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