有人帮我 我正在处理我们的项目,我需要检查我的数据库是否有20条记录。 如果是这样,那么它将不再接受记录。 我一直在试图代码如下:如何获得表中的记录数?
Public Class Form1
Dim con As New OleDb.OleDbConnection
Dim ds, ds2 As New DataSet
Dim da, da2 As OleDb.OleDbDataAdapter
Dim sql, sql1 As String
Dim int As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
con.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0; data source = |datadirectory|\Database6.mdb"
con.Open()
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT * FROM Accounts WHERE Username='" & TextBox1.Text & "'", con)
Dim sdr As OleDb.OleDbDataReader = cmd.ExecuteReader
Dim cmd1 As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT * FROM Accounts")
sql = "INSERT INTO Accounts ([Username], [Password], [FirstName], [LastName]) VALUES ('" & TextBox1.Text & "','" & TextBox2.Text & "', '" & TextBox3.Text & "','" & TextBox4.Text & "') "
sql1 = "SELECT Count([AccountID]) FROM Accounts"
cmd = New OleDb.OleDbCommand(sql, con)
cmd1 = New OleDb.OleDbCommand(sql1, con)
Convert.ToInt32(sql1)
cmd1.ExecuteScalar()
If sql1 < 20 Then
MsgBox("Cannot accept records")
ElseIf sdr.HasRows = False Then
cmd.ExecuteNonQuery()
MsgBox("Account Added")
ElseIf sdr.HasRows = True Then
MsgBox("Username is taken")
End If
con.Close()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.Hide()
Form2.Show()
End Sub
End Class
但转换代码触发一个错误:
输入字符串的格式不正确
但如果我删除代码转换它给了我错误
从字符串“SELECT Count([AccountID])F ROM A“键入'Double'无效。”
请帮助我。
TIA
尝试在您的文本框中输入:''; drop Database6;'/ kidding,do not that that!但我强烈建议阅读关于SQL注入http://en.wikipedia.org/wiki/SQL_injectionattacks。 – mxmissile
是的。我完全了解SQL注入。但这不是我们项目的重点。我们只需要显示添加第20条记录后,数据库不能再接受记录。你能帮我吗? – Bampie
第一块帮助 - 这不是VBA。如果你正确地标记你的问题,你的机会将会提高。 –