『壹』 VB連接sql
問題補充:
「我想知道相對地址連接~~是SQL
移到的機子上不裝SQL那怎麼辦??」
1、SQL資料庫連接必須是伺服器,不用地址,因為在安裝SQL
Server
2000
後,你的資料庫地址已經確定;
2、在一般情況下不安裝是不可以的,對於Access資料庫現在的操作系統有其驅動,而沒有SQL的,除非使用網路,例如區域網。
SQL
SERVER
2000
資料庫代碼比較簡單,無非資料庫連接語句不同,其他和Access資料庫沒有大的區別。
如果「程序要移動到其他機子上」,移動到的機子上必須同樣安裝SQL
SERVER
2000
資料庫,而且伺服器名稱、資料庫名稱必須和原伺服器名稱、資料庫名稱相同,如果有資料庫密碼,必須保持一致。
下面是SQL資料庫連接代碼,請參考:
Public
conn
As
New
ADODB.Connection
conn.ConnectionString
=
"driver={SQL
Server};server=伺服器名稱;uid=sa;pwd=密碼;database=資料庫名稱"
conn.Open
『貳』 vb如何連接sql資料庫,求源碼
Dim conn As New ADODB.Connection '創建一個 Connection 實例,在這里使用New等於將Dim和Set合並為一段代碼執行
Dim rs As ADODB.Recordset '創建一個 Recordset 實例,不使用New 是因為,經常需要重復使用Set,因此沒必要在這里使用
Dim CnStr As String, Sql As String '創建兩個字元串變數分別存放兩個集合的SQL語句代碼段
1、裝載資料庫(不屬於Recordset集合)
=============
Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$
'以上5個字元串變數分別表示文件路徑和文件名、資料庫地址、資料庫名、數據操作員用戶名、操作員密碼
FileName = App.Path & "\'資料庫名'"
DbIp = "資料庫地址"
DbName = "資料庫名"
DbUser = "數據操作員用戶名"
DbPw = "操作員密碼"
'以上變數根據資料庫類型的不同而不同,有可能只需要1至兩個變數
'1)連接Access資料庫:
'-------------------
CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" & FileName & ";Jet OLEDB:Database Password=" & DbPw
'2)連接Oracle資料庫:
'-------------------
CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data Source=" & FileName & ";Persist Security Info=True"
'其中:
'PASSWORD: 密碼
'User ID: 用戶號
'Data Source: 資料庫名
'Persist Security Info:
'Provider:
'3)連接VF的DBF庫:
'----------------
CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" & DbUser & ";SourceDB=" & FileName &
";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"
'4)連接SQL的資料庫
'------------------
CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQSOFT;SERVER=" &
DbIP
'也可以使用這段簡易代碼 CnStr = "Provider=SQLOLEDB;Data Source=" & DbIp & ";DATABASE=" & DbName & ";UID=" & DbUser & ";pwd=" & DbPw
Conn.Open cnstr '使用 Connection 集合的 Open 方法 與資料庫建立連接
2、Recordset集合的常用方法
==========================
'1)打開一個表
'------------
Sql = "select * from 表名" 'SQL查詢語句
Set rs = New ADODB.Recordset '新建一個實例
rs.Open Sql, conn '使用 Open 方法打開資料庫中的一個表
'注意,這種打開方式只能使用 rs.MoveNext (即,向後移動行坐標)而不能像其他方向,並且不能修改數據內容
'
'rs.Open Sql, conn,1 '雖然只加了個「1」,但這種方法可以向任何方向移動行坐標。
'
'以下參數代表了這個可選值的含義
'0 = adOpenForwardOnly (默認值)打開僅向前類型游標。
'1 = adOpenKeyset 打開鍵集類型游標。
'2 = adOpenDynamic 打開動態類型游標。
'3 = adOpenStatic 打開靜態類型游標。
'
'雖然使用以上方法可以可以實現行坐標(游標)的任意移動,但是仍然無法寫入數據。因此需要進一步的對Open 方法進行完善
'rs.Open Sql, conn, 1, 3 '後面的3是確定讀寫許可權的
'以下參數代表了這個可選值的含義
'1 = adLockReadOnly (默認值)只讀 — 不能改變數據。
'2 = adLockPessimistic 保守式鎖定(逐個) — 在編輯時立即鎖定數據源的記錄。
'3 = adLockOptimistic 開放式鎖定(逐個) — 只在調用 Update 方法時才鎖定記錄。
'4 = adLockBatchOptimistic 開放式批更新 — 用於批更新模式(與立即更新模式相對)。
'
'2)讀寫數據
'----------
'增加一行記錄並對新記錄的內容進行修改並保存可以如下寫法
rs.AddNew '增加一行記錄
rs("...")="..." '數據讀寫操作
...
rs.UpDate '保存寫入資料,如果使用只讀許可權,則不能使用這個方法
rs.Close '這個方法用來關閉你所代開的表,如果不使用這個方法也可以,但是資料庫仍然認為你在對標進行鎖定,可造成資料庫負擔過重
2、對數據進行篩選和排序
=======================
Sql = "select * from 表名" 'SQL查詢語句
'以上為打開一個表的所有內容
Sql = "select top 50 * from 表名" 'SQL查詢語句
'以上為只打開前50行的記錄
Sql = "select top 50 列名1,列名2,列名5 from 表名" 'SQL查詢語句
'以上為只打開前50行的記錄,並且只打開第1、2、5列數據
Sql = "select * from 表名 where 列名1='" & 欄位 & "'" 'SQL查詢語句
'以上為一個簡單的篩選,表示打開的內容必須符合[列名1='" & 欄位 & "'"]的內容
'需要注意的是,資料庫列的類型必須匹配,比如字元串類型需要以單引號括起
'而數字類型則不能用單引號括起
'另外SQL語句還支持通配符,例如 列名1 like '%" & 欄位 & "%'" 表示包含[欄位]
'在表達式中的匹配
'? _(下劃線) 任何單一字元
'* or % 零個或多個字元
'# 任何單一數字(0 — 9)
'[charlist] 任何在字元表中的單一字元
'[!charlist] 任何不在字元表中的單一字元
'註:根據資料庫的不同?、_和*、%的應用有所差別,比如SQL只使用% 和 _ 分別代表多個字元和單一字元
Sql = "select * from 表名 where 列名1='" & 欄位 & "' ORDER BY 欄位1 ASC" '對查詢結果進行升序排列
Sql = "select * from 表名 where 列名1='" & 欄位 & "' ORDER BY 欄位1 DESC" '對查詢結果進行降序排列
Sql = "select * from 表名 where 列名1='" & 欄位 & "' ORDER BY 欄位1 DESC, ORDER BY 欄位2 DESC" '對查詢結果進行多維降序排列(速度奇慢,不推薦使用)
3、Recordset集合的常用屬性方法
==============================
rs.BOF '是否游標在最上邊
rs.EOF '是否游標在最下邊
rs.RecordCount '記錄集的行數(如果使用像前類型的游標,可能返回不準確)
rs.AddNew '新建一行記錄
rs.Update '保存當前行被修改的記錄
rs.Delete '刪除當前行
rs.Close '關閉記錄集
4、Fields集合的一些屬性的解釋
=============================
'以下為簡寫,正常情況需要rs.Fileds.。。。但是Fields屬於Recordset的一個默認集合,因此可以省略
rs() '括弧內可以是列名也可以是列的序號例如:rs("姓名")、rs(3) 都是是可以的
rs(3).Name '返回列名
rs(3).Type '返回列的類型
rs(3).Value '返回當前行的值
rs.Fields.Count '返回列數
『叄』 如何將VB和SQL資料庫進行連接
Dim
oleDbConnection1
As
OleDb.OleDbConnection
Dim
strConnect
As
Sting="Provider=SQLOLEDB;Persist
Security
Info=False;
Data
Source=伺服器名;Initial
Catalog=資料庫名;User
ID=sa;Password=;"
oleDbConnection1=New
System.Data.OleDb.OleDbConnection(strConnect)
填上的伺服器名
和資料庫名
用戶名
和密碼
後用這個語句可以進行連接
『肆』 VB怎麼連接MSSql資料庫
要連接SQL資料庫有兩種方法用ADODC或ADO。
方法一:
(ADODC)
首先須引用Projects-Components-Microsoft
ADO
Data
Controls
6.0
(OLEDB)。
之後在表單設置ADODC控制項。然後Form_Load()輸入以下代碼:
Private
Sub
Form_Load()
ADODC1.ConnectionString
=
"Provider=SQLOLEDB;Password=密碼;Persist
Security
Info=False;User
ID=用戶名;Initial
Catalog=資料庫名;Data
Source=伺服器名"
ADODC1.CommandType
=
adCmdText
ADODC1.RecordSource
=
"select
*
from
表格名稱"
ADODC1.Refresh
End
Sub
方法二:
(ADO)
首先須引用Projects-References-Microsoft
Active
X
Data
Objects
2.0
Library。
注意以下兩段須寫在程式最上面(Gerenal一般)中。
Dim
cn
As
New
ADODB.Connection
Dim
rs
As
New
ADODB.Recordset
Dim
SQL
As
String
然後在Form_Load()輸入以下代碼:
Private
Sub
Form_Load()
cn.ConnectionString
=
"Provider=SQLOLEDB;Password=密碼;Persist
Security
Info=False;User
ID=用戶名;Initial
Catalog=資料庫名;Data
Source=伺服器名"
cn.Open
If
rs.State
=
adStateOpen
Then
rs.Close
rs.CursorLocation
=
adUseClient
SQL
=
"select
*
from
表格名"
rs.Open
Trim$(SQL),
cn,
adOpenKeyset,
adLockPessimistic
End
Sub
『伍』 vb怎麼連接sql
在窗體上添加adodc控制項
滑鼠右鍵-adodc屬性-在通用選項卡里,點生成,選for
SQL
Server驅動程序-下一步-連接選項卡里
1.輸入伺服器名稱,2.使用Windows
NT
集成安全設置。3.選擇一個資料庫
點測試連接,看看是否成功。按確定
點記錄源選項卡,命令類型選8,命令文本(SQL)寫:select
*
from
table1
確定,就連接到SQL資料庫的表table1了。
Private
Sub
Command1_Click()
If
Not
Adodc1.Recordset.EOF
Then
Text1.Text
=
Adodc1.Recordset.Fields("line1")
End
If
End
Sub
『陸』 如何用VB實現連接SQL資料庫
一是:Public Function ConnectString() _
As String
ConnectString = "Provider=SQLOLEDB;User ID=用戶;Password=密碼;" & "Data Source=" + IP地址 + ";" & "Initial Catalog=資料庫名" _
End Function
二是:
Public Function ExecuteSQL(ByVal SQL _
As String, MsgString As String) _
As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", _
UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & _
" query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, _
adOpenKeyset, _
adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查詢到" & rst.RecordCount & _
" 條記錄 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查詢錯誤: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function
以上復制到模塊「Mole1」中
三是:聲明:
Dim ADO1 As Recordset
Option Explicit
Dim MsgText As String
Dim TXTSQL As String
四是:連接
TXTSQL = "select * from 表名"
Set ADO1 = ExecuteSQL(TXTSQL, MsgText)
ADO1.Requery
五是顯示欄位
Set Text1.DataSource = ADO1
Text1.DataField = "欄位"
Set MSHFlexGrid1.DataSource = ADO1
『柒』 VB如何連接SQL資料庫並登錄
Option Explicit
Private Function Selectsql(SQL As String) As ADODB.Recordset '返回ADODB.Recordset對象
Dim ConnStr As String
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set Conn = New ADODB.Connection
'On Error GoTo MyErr:
ConnStr = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=登錄資料庫用戶名(默認為sa);Password=登錄資料庫密碼;Initial Catalog=資料庫名;Data Source=伺服器名(默認為:MERRYCHINA)" '這是連接SQL資料庫的語句
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(SQL), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
'Exit Function
'MyErr:
'Set rs = Nothing
'Set Conn = Nothing '釋放相關的系統資源
'MsgBox Err.Description, vbInformation, "系統提示" '顯示出錯信息
End Function
Private Sub Form_Load()
Dim SQL As String
Dim rs As ADODB.Recordset
Dim X As Long
On Error GoTo Err_box
SQL = " select * from 用戶表"
Set rs = Selectsql(SQL)
If rs.RecordCount > 0 Then
rs.MoveFirst
For X = 1 To rs.RecordCount
Combo1.AddItem rs.Fields("用戶名").Value
rs.MoveNext
Next X
Combo1.ListIndex = 0
End If
rs.Close
Exit Sub
Err_box:
End Sub
Private Sub Command1_Click()
Dim SQL As String
Dim rs As ADODB.Recordset
If Text1.Text = "" Then
MsgBox "請輸入口令!", 16
Text1.SetFocus
Exit Sub
End If
If Combo1.Text = "" Then
MsgBox "請選擇登錄用戶!", 16
Combo1.SetFocus
Exit Sub
End If
SQL = "SELECT * FROM 用戶表 WHERE 用戶名='" & Combo1.Text & "' AND 密碼='" & Text1.Text & "' "
Set rs = Selectsql(SQL)
If rs.RecordCount > 0 Then
Form1.Show '想要打開的主窗體
MsgBox "恭喜兄弟,登錄成功!", 64, "提示"
Unload Me
Else
MsgBox "口令不對,請重新輸入!", 16, "提示"
Text1.SetFocus
End If
End Sub
'**********************************************************************
'說明:1) 在工程中引用Microsoft ActiveX Data Objects 2.8 Library ,其它版本也行如:2.0
' 2) 在窗體中加Texe1.text(文本框控制項),Combo1.text(組合框控制項),Command1(命令按鈕)各一個
' 3) 在SQL Server2000中創建資料庫,新建表"用戶表",表中包含"ID,姓名,密碼"等欄位,然後將以上代碼復制,OK搞定
4) 以上方式無需載入ADO控制項,方便!
『捌』 vb如何和SQL連接起來,告急
Vb6.0連資料庫
1.1 ADO(ActiveX Data Object)連接方式
在連接資料庫前,首先要在Visual Basic 6.0菜單中「工程」—>「引用」中選擇Microsoft ActiveX Data Objects 2.6 Library 和Microsoft ActiveX Data Objects Recordset 2.6 Library這兩個組件。
實例:以建立登陸系統為例,介紹無源資料庫連接。在Microsoft SQL Server 2000 中建立一個Student 的資料庫,在Student資料庫中建立login_user(name,password)的數據表,Microsoft SQL Server伺服器的名為data_server。代碼如下:
Option Explicit
Public LoginSucceeded As Boolean
'引用Microsoft ActiveX Data Objects 2.6 Library
'定義連接對象和記錄集
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
'對取消按鈕單擊事件的響應
Private Sub cmdCancel_Click()
'設置全局變數為 false
'不提示失敗的登錄
LoginSucceeded = False
Me.Hide
End Sub
'對登錄按鈕單擊事件的響應
Private Sub cmdOK_Click()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
'建立無源資料庫連接
conn.ConnectionString="driver={sql server};server=data_server;uid=sa;pwd=;Database=student"
conn.ConnectionTimeout = 50
conn.Open
Dim str As String
'連接連接對象
Set rs.ActiveConnection = conn
'設置游標類型
rs.CursorType = adOpenDynamic
If Trim(txtUserName.Text = "") Then
MsgBox "用戶名不能為空,請重新輸入用戶名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
'設置查詢字元串
str = "select * from login_user where name ='" & Trim(txtUserName.Text) & "'"
rs.Open str
If rs.EOF = True Then
MsgBox "沒有這個用戶,請重新輸入用戶名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
'登錄成功,連接主窗口
If (Trim(txtPassword.Text) = Trim(rs.Fields("password"))) Then
LoginSucceeded = True
Me.Hide
main.Show
Else
MsgBox "密碼不正確,請重輸入密碼!", , "警告"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
End If
End If
End Sub
2 通過配置ODBC環境,進行數據源的注冊,對資料庫進行連接、訪問和操作。
2.1 ODBC數據源分為以下三類:
(1) 用戶DSN:只有創建數據源的用戶才可以使用他們自己創建的數據源,而且只能在當前的計算機上使用。
(2) 系統DSN:任何使用你的計算機的用戶和程序都可以使用的DSN。
(3) 文件DSN:除了具有系統DSN的功能之外,還能被其它用戶在其它計算機上使用。
2.2 創建ODBC數據源的步驟
(1) 啟動控制面板。
(2) 雙擊ODBC圖標,啟動ODBC數據源。
(3) 換到「用戶DSN」標簽,單擊「添加」。選擇SQLServer作為數據源的驅動程序。
(4) 為數據源命名,按提示操作即可創建ODBC數據源。
2.3 創建資料庫連接
創建數據源是進行有源資料庫連接的第一步,下面同樣是運用ADO對象模型的主要元素Connection(連接)進行源資料庫連接。
ConnectionString是Connection對象的屬性名稱,提供數據提供者或服務提供者打開到數據源的連接所需要的特定信息,包括Database、DSN、UID等。
(1) Database:字元串表達式,指定伺服器上的資料庫名稱。
(2) UID:字元串表達式,為ODBC數據源指定用戶標識(用戶賬號名)。
(3) PWD:字元串表達式,為ODBC數據源指定用戶口令。
(4) DSN:字元串表達式,指定連接的ODBC 數據源名稱。
利用已配置好的ODBC數據源進行連接。
實例:以建立查詢系統為例,介紹有源資料庫連接。創建ODBC數據源名稱為stud,通過ADO與資料庫student進行連接,代碼如下:
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub Form_Load()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "dsn=stud;uid=sa;pwd=;database=student"
conn.Open
Dim str As String
Set rs.ActiveConnection = conn
rs.CursorType = adOpenDynamic
str = "select * from login_user"
rs.Open str
txtUserName.Text = rs.Fields("name")
txtPassword.Text = rs.Fields("password")
End Sub