主题:VB.NET与SQL联接问题
Imports System.Data.SqlClient
Imports System.IO
Module Sample01
Public SqlCon As New SqlConnection("Data Source=SERVER;Database=SAMPLE01;User Id=SAM;Pwd=SAM")
Public UserId As String
Public Role As String
Public Function GetDataTable(ByVal sql As String) As DataTable
Dim dt As New DataTable
Try
Dim SqlAda As New SqlDataAdapter(New SqlCommand(sql, SqlCon))
SqlAda.Fill(dt)
Catch ex As Exception
WriteErr(ex)
End Try
Return dt
End Function
Public Sub WriteErr(ByVal ex As Exception)
Dim path As String = Application.StartupPath + "\Err01.txt"
If Not File.Exists(path) Then
File.Create(path)
End If
Dim sw As StreamWriter = File.AppendText(path)
sw.Write(System.DateTime.Now.ToString() + vbCrLf)
sw.Write(ex.Message + vbCrLf)
sw.Write(ex.StackTrace + vbCrLf)
sw.Flush()
sw.Close()
End Sub
End Module
买的新书,随带的代码,("Data Source=SERVER;Database=SAMPLE01;User Id=SAM;Pwd=SAM"),登陆时可是联不上,SERVER为我电脑名,用户和密码也都为SAM,可怎么就联不上呢。
书上提示是第7章 企业内部消息系统的源代码
双击SAMPLE01.sln即可打开项目,修改Sample01.vb中的connectstring为实际的值即可连接。这connectstring为哪部分代码,新手,呵呵。
以下为LOGIN.VB的代码,请指点下为什么联不上数据库呢。
Private Sub btok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btok.Click
If Me.tbname.Text.Trim() = String.Empty Then
MessageBox.Show("姓名不能为空")
Me.tbname.Focus()
ElseIf Me.tbpwd.Text.Trim() = String.Empty Then
MessageBox.Show("密码不能为空")
Me.tbpwd.Focus()
Else
Dim sql As String = "SELECT * FROM USERINFO WHERE USERID = '" + Me.tbname.Text.Trim() + "' AND PWD = '" + Me.tbpwd.Text.Trim() + "'"
Dim dt As DataTable = Sample01.GetDataTable(sql)
If dt.Rows.Count = 0 Then
MessageBox.Show("用户名不存在或密码不正确")
Me.tbpwd.Focus()
Else
If Me.rduser.Checked Then
Sample01.Role = "USER"
flag = True
Else
If dt.Select("ROLE = 0").Length <> 0 Then
Sample01.Role = "ADMIN"
flag = True
Else
MessageBox.Show("此用户不具备管理员权限")
flag = False
End If
End If
Sample01.UserId = Me.tbname.Text.Trim()
Me.Close()
End If
End If
End Sub
Imports System.IO
Module Sample01
Public SqlCon As New SqlConnection("Data Source=SERVER;Database=SAMPLE01;User Id=SAM;Pwd=SAM")
Public UserId As String
Public Role As String
Public Function GetDataTable(ByVal sql As String) As DataTable
Dim dt As New DataTable
Try
Dim SqlAda As New SqlDataAdapter(New SqlCommand(sql, SqlCon))
SqlAda.Fill(dt)
Catch ex As Exception
WriteErr(ex)
End Try
Return dt
End Function
Public Sub WriteErr(ByVal ex As Exception)
Dim path As String = Application.StartupPath + "\Err01.txt"
If Not File.Exists(path) Then
File.Create(path)
End If
Dim sw As StreamWriter = File.AppendText(path)
sw.Write(System.DateTime.Now.ToString() + vbCrLf)
sw.Write(ex.Message + vbCrLf)
sw.Write(ex.StackTrace + vbCrLf)
sw.Flush()
sw.Close()
End Sub
End Module
买的新书,随带的代码,("Data Source=SERVER;Database=SAMPLE01;User Id=SAM;Pwd=SAM"),登陆时可是联不上,SERVER为我电脑名,用户和密码也都为SAM,可怎么就联不上呢。
书上提示是第7章 企业内部消息系统的源代码
双击SAMPLE01.sln即可打开项目,修改Sample01.vb中的connectstring为实际的值即可连接。这connectstring为哪部分代码,新手,呵呵。
以下为LOGIN.VB的代码,请指点下为什么联不上数据库呢。
Private Sub btok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btok.Click
If Me.tbname.Text.Trim() = String.Empty Then
MessageBox.Show("姓名不能为空")
Me.tbname.Focus()
ElseIf Me.tbpwd.Text.Trim() = String.Empty Then
MessageBox.Show("密码不能为空")
Me.tbpwd.Focus()
Else
Dim sql As String = "SELECT * FROM USERINFO WHERE USERID = '" + Me.tbname.Text.Trim() + "' AND PWD = '" + Me.tbpwd.Text.Trim() + "'"
Dim dt As DataTable = Sample01.GetDataTable(sql)
If dt.Rows.Count = 0 Then
MessageBox.Show("用户名不存在或密码不正确")
Me.tbpwd.Focus()
Else
If Me.rduser.Checked Then
Sample01.Role = "USER"
flag = True
Else
If dt.Select("ROLE = 0").Length <> 0 Then
Sample01.Role = "ADMIN"
flag = True
Else
MessageBox.Show("此用户不具备管理员权限")
flag = False
End If
End If
Sample01.UserId = Me.tbname.Text.Trim()
Me.Close()
End If
End If
End Sub