cari

Rumah  >  Soal Jawab  >  teks badan

Masukkan hanya kotak teks yang didayakan ke dalam MySQL dalam VB.Net

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粉043432210P粉043432210305 hari yang lalu435

membalas semua(1)saya akan balas

  • P粉739706089

    P粉7397060892024-02-22 09:18:22

    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

    balas
    0
  • Batalbalas