发送接收的过程都放在Try...Catch里面,一旦连接中断,就会出错,此时可以关闭现有连接,重新连服务端
创新互联是一家专业提供海北州企业网站建设,专注与成都网站设计、成都网站建设、H5高端网站建设、小程序制作等业务。10年已为海北州众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
1·绑定数据源来进行连接
2.用代码连接
先到数据库建立一个数据库和相应的表
连接数据库的代码:
Dim str As String = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password="
dim conn As SqlClient.SqlConnection
try
conn = New SqlClient.SqlConnection
conn.ConnectionString = str
conn.Open()
Return True
Catch ex As Exception
MsgBox(ex.ToString)
Return False
End Try
登录代码:Dim str As String = "Data Source=服务器名;Initial Catalog=数据库名;Persist Security Info=True;User ID=;Password="
dim conn As SqlClient.SqlConnection
conn = New SqlClient.SqlConnection
conn.ConnectionString = str
conn.Open()
sqlstr = "Select * From Amd Where AmdName='" TextBox1.Text "' And AmdPwd = '" TextBox2.Text "'"
Dim sqlcmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(sqlstr, conn)
Dim dr As SqlClient.SqlDataReader
dr = sqlcmd.ExecuteReader
If dr.Read = True Then '判断一条记录为真
kf.Show() '显示下个窗体
Me.Hide() ’隐藏当前窗体
Else
MessageBox.Show("输入信息有误!", "提示")
TextBox1.Text = ""
TextBox2.Text = ""
End If
连接数据库 如果采用的 ADO.NET 进行连接,默认情况下会有一个你看不见的 连接池 来管理这些连接,然后 你每次程序里的关闭数据库,只是把连接放回连接池,方便下次重新连接。
所以不用就关,避免连接池连接数过多。
这个很正常,因为服务器(对方)还没对客户端(本地)做Close动作。还有一个说法是本地端控件的缓存还存在着与服务器对应Handle,只是State属性状态不是sckConnected而已。继续进行测试,你也会发现只要超过60秒通信闲置,也会自动Not sckConnected。
TCP连线,可以使用Load 控件数组进行尝试连线,当控件Close后就Unload,这可以取代必须关闭窗体、重新打开连接的问题。