如何在选择vb.net中的复选框时使用datagridview发送多条消息?

时间:2019-03-11 09:05:45

标签: vb.net

这是我的代码:

'for clicking the datagridview

Private Sub DataGridView1_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        Try
            MySqlConnection.ConnectionString = "Server=localhost; User=root;Password='';Database=lrbhams;"


            MySqlConnection.Open()
            Dim state3 As String = "select boarder_fname, boarder_contact, guardian, guardian_number from boarders_info"
            Dim command As New MySqlCommand(state3, MySqlConnection)
            'command.Connection.Open()
            command.ExecuteNonQuery()

            MySqlConnection.Close()

            If DataGridView1.Rows(e.RowIndex).Cells(2).Value Then
                TextBox1.Text = DataGridView1.Rows(e.RowIndex).Cells(2).Value

            ElseIf DataGridView1.Rows(e.RowIndex).Cells(4).Value Then
                TextBox1.Text = DataGridView1.Rows(e.RowIndex).Cells(4).Value
            End If

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        ''
    End Sub

用于发送消息:

 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        Dim message As String
        'Dim reader As MySqlDataReader


        message = RichTextBox1.Text
    If send_sms.SerialPort.PortName = send_sms.portName Then
        send_sms.SerialPort.Write("AT" & vbCrLf)
        send_sms.SerialPort.Write("AT+CMGF=1" & vbCrLf)
        send_sms.SerialPort.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf)
        send_sms.SerialPort.Write(message & Chr(26))
        MsgBox("Text Message Successfully Send !!!")
        Try

            Dim connectString As String
            Dim conn As New MySqlConnection
            Dim reader As MySqlDataReader
            Dim command As MySqlCommand
            'Dim mysqlQuery As String

            connectString = "server=localhost;user=root;database=lrbhams"
            conn = New MySqlConnection(connectString)

            Dim query As String
            conn.Open()
            query = "INSERT into admin_log_attendance (action,contact_number, date) VALUES ('" & RichTextBox1.Text & "','" & TextBox1.Text & "', '" & Date.Today & "')"

            command = New MySqlCommand(query, conn)
            reader = Command.ExecuteReader
            conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)

        End Try

    End If

End Sub

1 个答案:

答案 0 :(得分:0)

MySqlConnectionMySql.Data.MySqlClien t命名空间中的类。它不是静态类,因此必须使用New关键字实例化。您不能在类本身上设置属性或调用方法。您必须创建该类的实例。最佳实践是对数据库对象使用`Using ... End Using块。即使出现错误,它也将确保关闭并处置数据库对象。

Select语句不是NonQuery。插入,更新和删除语句可以与command.ExecuteNonQuery一起运行,但不能与Select一起运行。如果需要单个数据,则可以使用Select运行.ExecuteScalar查询,如果需要多个列和/或行,则可以使用.ExecuteReader进行查询。

您不能仅仅执行Select命令并期望发生某些事情。我怀疑您想在网格中显示数据,所以让我们用DataTable方法填充.Load(返回记录的内存表示),然后将其绑定到DataGridView。 / p>

无需关闭连接,因为Using块会关闭它。

如果您在不覆盖该方法的类上调用.ToString,则只会得到该类的完全限定名称。 Exception类提供了一个名为Property的{​​{1}},您可以使用。

Message的填充将进入一个单独的方法,您可以从DataGridView进行调用。

现在Form.Load中有数据,您可以单击它,然后将触发DataGridView事件。我希望可以使用Cell(2)和Cell(4)布尔值,因为这是CellContentClick语句起作用的唯一原因。启用Option Strict后,转换代码和If的必要性将显而易见。 (请参阅我的评论)

现在就足够了。通过所有这些和Option Strict,您应该能够修复代码的第二部分。

.ToString