这是我的代码:
'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
答案 0 :(得分:0)
MySqlConnection
是MySql.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