请教大家一个关于VB 2010加上 SQL SERVER 2008 数据库程序的问题?
Dim cstring As String = "Provider=sqloledb.1;user id=sa;password=a;initial catalog=zywy;date source=txlgl"
Dim sqlstr As String = "select xingming,mima from txlgl "
Dim mycon As New OleDbConnection(cstring)
Try
mycon.Open()
' MessageBox.Show("数据库连接正确", "连接正确对话框")
Catch oledb As OleDbException
MessageBox.Show("数据库连接失败", "连接失败对话框")
End Try
Dim mycom As New OleDbCommand()
Dim I As Integer = 0
mycom.Connection = mycon
mycom.CommandType = CommandType.Text
mycom.CommandText = sqlstr
Dim mydatareader As OleDbDataReader = mycom.ExecuteReader
mydatareader.Read()
Try
While mydatareader.Read()
If CStr(mydatareader.Item(0)) = CStr(Me.TextBox1.Text) Then
MsgBox("登陆成功")
main.Show()
I = 1
mydatareader.Close()
mycon.Close()
End If
End While
Catch oledb As Exception
MsgBox("数据库连接错误")
End Try
End Sub
End Class
其中运行完 If CStr(mydatareader.Item(0)) = CStr(Me.TextBox1.Text) 后,程序总是跳到end if ,就算我输入的姓名和数据库中的姓名一样,我用单步跟踪查看,程序也总是跳到END IF ,而不执行后面的THEN 语句,请问为什么?谢谢
有或者有什么好的设计登陆窗口的语句,请指教,谢谢啦。 请教VB?2010的问题?
[解决办法]
如果数据库表格中的xingming字段类型是char()即固定字符长度型的,可能该字段后面存在空格,应该去掉空格在和Me.TextBox1.Text比较。可以把比较语句改为:
If mydatareader.Item(0).tostring.trim= Me.TextBox1.Text.tostring.trim Then