VB怎么连接 SQL 数据库?

我们学习了 SQL Server数据库,VB也学习了一点,但是没有学习怎么连接数据库.现在我们要做一个设计,但是不知道怎么用VB语言连接数据库,请您帮忙指点下,希望尽量的详细些,先谢谢了.

1、打开代码窗口,添加引用:Imports System.Data.SqlClient。

2、输入以下代码:

“Public conn1  As SqlConnection = New SqlConnection _

("server=192.168.1.79; Initial Catalog= student; User ID= panqe;PWD=shentai768@")”,vb就已经成功连接sql数据库了。

3、代码详解:声明关键字Public(因为是全局变量,所以用Public 来声明)。

4、连接参数。

5、如果SQL 数据库就在本机,则用以下代码连接:

("server=.; Integrated Security=False;Initial Catalog= student; User ID= panqe;PWD=shentai768@")。

6:如果代码太长,影响可读性,可以用空格加"_"后,回车换行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-20
一个简单的方法:
首先,建立程序公共模块输入以下代码:
Public conn As New ADODB.Connection
'全局变量 rst 指针
Public rst As New ADODB.Recordset
'全局调用函数 打开数据库
Public Function openconn()
conn.ConnectionString = "连接信息"
'此连接信息最简单的生成办法:
'在任意窗口下建立一新ADODC控件
'选择控件属性,通用页,使用连接字符串,生成(U)
'利用该向导生成出字符串,然后将该字符串复制到"连接信息"中即可
conn.Open
End Function
'全局调用函数 关闭数据库
Public Function closeconn()
If conn.State = 1 Then
conn.Close
Set conn = Nothing
End If
End Function

然后在窗体文件中可以使用的函数:
打开数据库:openconn
注意:此函数为自定义函数,无参数,定义在公共模块中!
建立数据表连接:Set rst = conn.Execute("select * from 数据表名")
如做登陆页可以这样判断用户名密码:
Text1.Text = RTrim(rst.Fields("id")) And Text2.Text = RTrim(rst.Fields("password"))
注:其中Text1.Text为输入用户名TextBOX Text2.Text为输入密码TextBOX
数据表中 id 为保存用户名 password 为保存密码!此方法为非加密方法!
关闭数据库函数:
closeconn
Set rst = Nothing
注:此两行,必须在打开数据库的情况下使用!并且每打开一次数据库后必须先使用此两句将数据库关闭后才可打开另一数据库表文件!!!!!否则程序报错终止!
添加新数据函数
rst.AddNew
rst("字段名1") = Text1.Text
rst("字段名2") = Text2.Text
rst.Update
删除数据函数
rst.Delete
注:使用此函数前,必须保证数据库指针函数rst指向需删除数据,移动rst指针可以使用函数:rst.MoveNext或rst.MoveLast
更新数据函数
rst.Open "update 数据表名 set 字段1='" + Text1.Text + "',字段2='" + Text2.Text + "' where id='" + Text3.Text + "'", conn, 1, 3
注,其中 where id = 为更新特定数据表的查找!
如果熟悉SQL语句,还可编写出其他方式的查找,这里就不多做介绍了!
第2个回答  2007-06-22
Public My_Cnn As New ADODB.Connection '连接数据库
StrCnn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器名"
My_Cnn.CursorLocation = adUseClient
My_Cnn.Open StrCnn

使用数据库
Dim sql As String
Dim My_temp As New ADODB.Recordset

执行SQL语句(一般插入,删除数据)
sql = "数据库语句"
My_cnn.Execute sql

读取数据
sql = "查询语句"
My_temp.Open sql, My_cnn, adOpenDynamic, adLockOptimistic

My_temp.field("字段名")

呵呵,就这么简单本回答被提问者采纳
第3个回答  2007-06-22
新建工程,在工程中添加一个ado控件
Dim objcon As New ADODB.Connection
Dim objrs As New ADODB.Recordset
objcon.Open "Provider=sqloledb.1;user id=sa;password=密码;Initial Catalog=数据库名;Data Source=远程主机IP或服务器名。本机既是本机IP"
objrs.Open "select * from 表 ", objcon, 3, 1
'再部件中添加DataGrid控件,以显示数据库数据
Set DataGrid1.DataSource = objrs

下面这段为俺曾经用过的很简单的一段程序,连接数据库,用DATAGRID控件显示数据库信息,且通可TEXT控件显示单个数据
点具体的数据
Private Sub Form_Load()
Dim i As Integer
Dim str As String
Dim rs As String
Dim objcon As New ADODB.Connection
Dim objrs As New ADODB.Recordset
objcon.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ad1;Data Source=192.168.4.12"
'objrs.Open "select * from ql111", objcon, 3, 1
str = "select * from ql111"
rs = "select * from kfxx"
objrs.Open str, objcon, adOpenStatic, adLockBatchOptimistic
'rskfxx.Open rs, objcon, adOpenStatic, adLockBatchOptimistic

Set DataGrid1.DataSource = objrs
For i = 0 To 7
DataGrid1.Columns(i).DataField = objrs.Fields(i).Name
Next i
kjywrefresh
Set Text2.DataSource = objrs
Text2.DataField = objrs.Fields("id").Name
Set Text3.DataSource = objrs
Text3.DataField = objrs.Fields("man").Name
'Set Text4.DataSource = objrs
'Text4.DataField = objrs("lxr").Name
'Set Text5.DataSource = objrs
'Text5.DataField = objrs("tel").Name
Set Text6.DataSource = objrs
Text6.DataField = objrs("gjxx").Name
Set Text7.DataSource = objrs
Text7.DataField = objrs("clff").Name

Set DataCombo1.DataSource = objrs
DataCombo1.DataField = objrs("kfdw").Name
Set DataCombo1.RowSource = rskfxx
DataCombo1.ListField = rskfxx.Fields("kfdw").Name
'Set Text9.DataSource = objrs
'Text9.DataField = objrs("kfdd").Name
Set Text1.DataSource = objrs
Text1.DataField = objrs("ghpj").Name
Set DTPicker1.DataSource = objrs
DTPicker1.DataField = objrs("pcdate").Name
Set DTPicker2.DataSource = objrs
DTPicker2.DataField = objrs("fhdate").Name

End Sub
第4个回答  2007-06-10
本想给你一个回答,但非三言两语能说得清。请到书店查阅,例子多得很。