Rumah > Soal Jawab > teks badan
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粉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 |