新人提问
vb.net写的wince程序,数据库为sqlce3.5
Dim connstr As String
Dim currpath As String
Dim conn As SqlCeConnection
currpath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName)
connstr = "datasource=" & currpath & "\demo.sdf"
conn = New SqlCeConnection(connstr)
Try
conn.Open()
Catch ex As Exception
MsgBox("连接数据库失败!" + ex.ToString)
Exit Sub
End Try
'读取数据库比对用户登录信息
Dim sqlcmd As SqlCeCommand
Dim sqlread As SqlCeDataReader
sqlcmd = New SqlCeCommand
sqlcmd.Connection = conn
sqlcmd.CommandText = "select * from userinfo where userid='" & txtname.Text & "' and userpass='" & txtpass.Text & "'"
MsgBox(sqlcmd.CommandText )
sqlread = sqlcmd.ExecuteReader
If sqlread.Read Then ’此处失败
If sqlread.RecordsAffected > 0 Then
MsgBox("ok")
Else : MsgBox("username or password error")
End If
Else
MsgBox("read error")
End If
'释放分配的资源
sqlread.Close()
sqlread.Dispose()
sqlcmd.Dispose()
conn.Close()
conn.Dispose()
End Sub
‘================================
sqlread.read执行失败提示read error!一直找不到什么原因
还有就是有资料说查询的RecordsAffected一直返回-1,那要怎么取得记录数
[解决办法]
try
catch
详细的错误看看吧
或者 sql = select * from userinfo
有没有数据
[解决办法]
ADODB.Recordset(1)
DataSet.Tables(0).Rows(0).Item(1)
Try
Dim myconnection As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\" + "用户管理.mdb")
Dim mycommand As OleDbCommand
Dim mydatareader As OleDbDataReader
myconnection.Open()
Dim s As String = "select * from yhb where yhm='" & TextBox1.Text & "' and mm='" & TextBox2.Text & "'"
mycommand = New OleDbCommand(s, myconnection)
mydatareader = mycommand.ExecuteReader()
If mydatareader.Read = False Then
MsgBox("用户名不存在或者密码错误", 0 + 48, "提示")
Else
mydatareader.Close()
myconnection.Close()
MsgBox("成功!")
End If
Catch ex As Exception
MsgBox("执行出错!")
End Try