システムの一部であるデータの更新やデータベースへの挿入を行っています。コンボボックスと10個のテキストボックスを含むフォームがあります。ここで、私のデータベースの診断テーブルからの病気でいっぱいの場合、コンボボックス。
診断テーブルの構造は次のとおりです。f_id、病気、症状。したがって、病気には多くの症状があります。
コンボボックスからアイテムを選択すると、症状がテキストボックスに表示されます。私はすでにこれを機能させました。私の問題は、テーブルの行を挿入または更新できるようにする必要があることです。私は本当にこれを行う方法がわかりません。これまでのところ、これが私のコードです:
Call Connect()
If Duplicate() = False Then
STRSQL = "insert into diagnose values ('', @ill, @sym0), ('', @ill, @sym1), ('', @ill, @sym2), ('', @ill, @sym3), ('', @ill, @sym4), ('', @ill, @sym5), ('', @ill, @sym6), ('', @ill, @sym7), ('', @ill, @sym8), ('', @ill, @sym9)"
Using myCmd = New MySqlCommand(STRSQL, myConn)
myConn.Open()
myCmd.Parameters.AddWithValue("ill", cmbRecord.Text)
myCmd.Parameters.AddWithValue("sym0", symp0.Text)
myCmd.Parameters.AddWithValue("sym1", symp1.Text)
myCmd.Parameters.AddWithValue("sym2", symp2.Text)
myCmd.Parameters.AddWithValue("sym3", symp3.Text)
myCmd.Parameters.AddWithValue("sym4", symp4.Text)
myCmd.Parameters.AddWithValue("sym5", symp5.Text)
myCmd.Parameters.AddWithValue("sym6", symp6.Text)
myCmd.Parameters.AddWithValue("sym7", symp7.Text)
myCmd.Parameters.AddWithValue("sym8", symp8.Text)
myCmd.Parameters.AddWithValue("sym9", symp9.Text)
myCmd.ExecuteNonQuery()
End Using
MsgBox("Record Added")
myConn.Close()
Else
STRSQL = "Update diagnose set first_aid = @ill, sname = @symp where first_aid = @ill"
Using myCmd = New MySqlCommand(STRSQL, myConn)
myConn.Open()
myCmd.Parameters.AddWithValue("ill", cmbRecord.Text)
myCmd.Parameters.AddWithValue("sym", symp0.Text)
myCmd.Parameters.AddWithValue("sym", symp1.Text)
myCmd.Parameters.AddWithValue("sym", symp2.Text)
myCmd.Parameters.AddWithValue("sym", symp3.Text)
myCmd.Parameters.AddWithValue("sym", symp4.Text)
myCmd.Parameters.AddWithValue("sym", symp5.Text)
myCmd.Parameters.AddWithValue("sym", symp6.Text)
myCmd.Parameters.AddWithValue("sym", symp7.Text)
myCmd.Parameters.AddWithValue("sym", symp8.Text)
myCmd.Parameters.AddWithValue("sym", symp9.Text)
myCmd.ExecuteNonQuery()
End Using
MsgBox("Record Updated")
myConn.Close()
End If
プロジェクトをmysqldb(myConn)に接続するモジュールがすでにあります。私ができないことは、診断テーブルのどの行も更新できないことです。行を追加することもできません。診断テーブルは次のようになります(例):
f_id | illness | symptom
1 | fever | fever
2 | fever | hot temperature
3 | fever | dizziness
4 | fever | headache
その場合、コンボボックスで発熱を選択したとすると、4つのテキストボックスに症状が表示されます。ユーザーが変更を加えた場合、Duplicate()
関数はコンボボックスの値にすでにレコードがあるかどうかを確認します。trueの場合、更新されます。ユーザーが別の症状を追加したとすると、保存ボタンをクリックすると、発熱によって症状が追加された別の行が追加されます。
falseの場合、新しいレコードが追加されます。つまり、テキストボックスに入力された症状の数に応じて、新しい行がテーブルに追加されます。したがって、「cold」を新しいレコードとして追加し、2つの症状を入力したとします。これは、フォームの10個のテキストボックスのうち2個を使用したことを意味し、テーブルに2行が追加されます。