VB 2010 连接ACCESS资料库时出错..
vb.net吧
全部回复
仅看楼主
level 1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim username As String
Dim password As String
username = TextBox1.Text
password = MaskedTextBox1.Text
Dim d
bp
ath As String = "OT time-off.accdb"
Dim source As String
source = "provider=microsoft.Ace.oledb.12.0;data source=" & dbpath
Dim conn As OleDbConnection
conn = New OleDbConnection(source)
conn.Open()
Dim cmd As OleDbCommand
Dim pass As String
Dim reader As OleDbDataReader
Dim adapter As New OleDbDataAdapter()
pass = "SELECT * FROM staff WHERE Officer code= '" + username.Trim() + "' and Password='" + password.Trim() + "'"
cmd = New OleDbCommand(pass, conn)
reader = cmd.ExecuteReader
If pass = Nothing Then
MsgBox("wrong username/password")
Else
mainpage.Show()
End If
End Sub
以上是程式码 , 作的是登入系统的LOGIN 按钮
原意是核对用家在本页的TEXTBOX1 跟MASKTEXTBOX1输入的 USERNAME 跟PASSWORD 比对在 OT time-off.accdb 里 STAFF 资料表中有没有一条 USERNAME跟PASSWORD 符合的条目, 有的话就弹出MAINPAGE页面
可是试行是一直弹出
Oledbexception 未处理
查询运算式 'Officer code= '' and Password=''' 中的 语法错误 (少了运算元)。
卡了两整天, 谷哥跟度娘了几天还是找不到解决方法, 在线等
2014年07月17日 03点07分 1
level 11
'导入命名空间
Imports System.Data.OleDb
'连接2000-2003数据库
Public AccessConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & My.Application.Info.DirectoryPath & "\Data.mdb;" & _
"Persist Security Info=False"
'连接2007-2010数据库
Public AccessConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & My.Application.Info.DirectoryPath & "\Data.mdb;" & _
"Persist Security Info=False"
'=========================不需要返回值的操作========================================
Try
'添加信息到数据库
Dim AccessString As String = "INSERT INTO TableName(ColumnName) VALUES('ValueStr')"
'更新信息到数据库
Dim AccessString As String = "UPDATE TableName SET UpdateColumnName='UpdateStrVar' WHERE WhereColumName='WhereStrVar'"
'从数据库删除信息
Dim AccessString As String = "DELETE FROM TableName WHERE WhereColumName ='WhereStrVar'"
Dim AccessConn As New OleDb.OleDbConnection(AccessConnectionString)
AccessConn.Open()
Dim AccessCmd As OleDbCommand = New OleDbCommand(AccessString, AccessConn)
AccessCmd.ExecuteNonQuery()
AccessConn.Close()
Catch AccessException As Exception
MsgBox(AccessException.Message)
End Try
'=========================对查询返回表的处理========================================
Try
Dim AccessString As String = "SELECT * FROM TableName WHERE ColumnName='StrVar'"
Dim AccessConn As New OleDb.OleDbConnection(AccessConnectionString)
AccessConn.Open()
Dim AccessAdapter As OleDbDataAdapter = New OleDbDataAdapter(AccessString, AccessConn)
AccessConn.Close()
Dim TempDataSet As New DataSet
AccessAdapter.Fill(TempDataSet)
If TempDataSet.Tables(0).Rows.Count > 0 Then
'your code
End If
Catch AccessException As Exception
MsgBox(AccessException.Message)
End Try
'=========================独占方式打开数据库==============================
Dim AdminAccessConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=Data.mdb;" & _
"mode=12;Persist Security Info=False;" & _
"jet oledb:DataBase Password ="PassWordStr"
'=========================修改密码========================================
Try
Dim AccessString As String = "ALTER DATABASE PASSWORD NewPwStr OldPwStr"
Dim AccessConn As New OleDb.OleDbConnection(AdminAccessConnectionString)
AccessConn.Open()
Dim AccessCmd As OleDbCommand = New OleDbCommand(AccessString, AccessConn)
AccessCmd.ExecuteNonQuery()
AccessConn.Dispose()
Me.Close()
Catch AccessException As Exception
MsgBox(AccessException.Message)
Me.Close()
End Try
'========================获取主键===================================
Try
AccessString = "SELECT * FROM TableName"
Dim AccessConn As New OleDb.OleDbConnection(AccessConnectionString)
AccessConn.Open()
Dim TempTable As New DataTable
TempTable = AccessConn.GetOleDbSchemaTable( _
OleDbSchemaGuid.Primary_Keys, New Object() {Nothing, Nothing, "TableName"})
Dim PriKey As String = TempTable.Rows(0).Item("COLUMN_NAME")
'PriKey is the PrimaryKey
AccessConn.Close()
Catch AccessException As Exception
MsgBox(AccessException.Message)
End Try
'========================获取所有的表===================================
Try
Dim AccessConn As New OleDb.OleDbConnection(AccessConnectionString)
AccessConn.Open()
Dim TempTable As New DataTable
TempTable = AccessConn.GetSchema("Tables")
OneComboBox.Items.Clear()
For i As Integer = 0 To TempTable.Rows.Count - 1
OneComboBox.Items.Add(TempTable.Rows(i).Item("TABLE_NAME"))
Next
AccessConn.Close()
Catch AccessException As Exception
MsgBox(AccessException.Message)
End Try
【原创软件】吧欢迎你!
【交流群】345997609
【交流群】285266980
2014年07月17日 08点07分 2
level 10
sheng ji十五啊啊啊凤凰网&@u的决定江苏&宿舍若非日废话i如果vi%度
2014年07月18日 06点07分 3
1