有人幫我 我正在處理我們的項目,我需要檢查我的數據庫是否有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。如果你正確地標記你的問題,你的機會將會提高。 –