Masukkan hanya kotak teks yang didayakan ke dalam MySQL dalam VB.Net
P粉043432210
P粉043432210 2024-02-21 19:42:03
0
1
407

Saya sedang mencipta sistem pengurusan inventori dalam VB.Net yang fungsi asasnya ialah memproses invois masuk. Saya mahu memasukkan data ke dalam pangkalan data MySQL jauh saya, tetapi hanya jika kotak teks dianggap didayakan. Saya tidak mempunyai masalah untuk memasukkan data ke dalam pangkalan data apabila saya mahu semua medan dimasukkan. Tetapi saya mahu kotak pilihan membolehkan produk tertentu dan membenarkan pekerja memasukkan item tertentu sahaja. Kotak semak membolehkan dan melumpuhkan medan teks seperti yang diperlukan, tetapi apabila data dimasukkan ke dalam pangkalan data ia akan memasukkan nilai nol untuk semua jenis produk, yang saya tidak mahu ia lakukan kerana ia akan mengacaukan sistem invois . Pada masa ini saya telah mencuba pernyataan if then tetapi masalah yang saya hadapi ialah ia menjangkakan kotak teks ditakrifkan yang tidak didayakan. Kod yang saya cuba ialah:

Public Sub btnEnter_Click(sender As Object, e As EventArgs) Handles btnEnter.Click

    Dim mysqlconn as new MySqlConnection ("ServerConnection")
    mysqlconn.Open()
    dim mysqlCmd as new MysqlCommand
    mysqlcmd.Connection = MysqlConn
    
    mysqlcmd.CommandText = "Insert into Table_Name (Column1,Column2,Column3) Values (@rec1,@Rec2,@Rec3)"
    
    If txtTextbox1.Enabled = True then
        mysqlcmd.Parameters.AddWithValue("@Rec1",Column1.text)
    End If
    
    If txtTextBox2.Enabled = True then
        mysqlcmd.Parameters.AddWithValue(@Rec2,Column2.text)
    End IF
    
    IF txtTextBox3.Enabled = True then
        mysqlcmd.Parameters.AddWithValue(@Rec3,Column3.text)
    End If

P粉043432210
P粉043432210

membalas semua(1)
P粉739706089

Anda tidak boleh hanya memasukkan lajur tanpa baris. Jadi jika anda ingin memasukkan satu lajur, anda perlu memasukkan semua lajur. Jika anda tidak mahu menambah nilai, lajur boleh menjadi NULL atau rentetan kosong, bergantung pada lajur dalam pangkalan data. Anda juga boleh menggunakan Using 并使用 Async/Await untuk mengalih keluar kerja pangkalan data daripada UI

Public Async Sub btnEnter_Click(sender As Object, e As EventArgs) Handles btnEnter.Click
    ' if your columns take NULL to mean no value
    Await AddParams(
        If(txtTextbox1.Enabled, Column1.Text, Nothing),
        If(txtTextbox2.Enabled, Column2.Text, Nothing),
        If(txtTextbox3.Enabled, Column3.Text, Nothing))
    ' else, if an empty string means no value
    Await AddParams(
        If(txtTextbox1.Enabled, Column1.Text, ""),
        If(txtTextbox2.Enabled, Column2.Text, ""),
        If(txtTextbox3.Enabled, Column3.Text, ""))
End Sub

Private Function AddParams(param1 As String, param2 As String, param3 As String) As Task
    Return Task.Run(
    Sub()
        Using mysqlconn As New MySqlConnection("ServerConnection")
            mysqlconn.Open()
            Using mysqlCmd As New MySqlCommand("Insert into Table_Name (Column1,Column2,Column3) Values (@rec1,@Rec2,@Rec3)", mysqlconn)
                mysqlCmd.Parameters.AddWithValue("@Rec1", param1)
                mysqlCmd.Parameters.AddWithValue("@Rec2", param2)
                mysqlCmd.Parameters.AddWithValue("@Rec3", param3)
            End Using
        End Using
    End Sub)
End Function

Jika saya faham reka bentuk semasa anda,

Nama jadual

ID Lajur 1 Lajur 2 Lajur 3
1 abc Definisi ghi
2 jkl mno pqr
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan