vbsql
㈠ vb怎麼執行sql語句
先是定義一個字元串變數,然後把你要寫的SQL語句賦給它。這時如果要把一些VB控制項里的數據加進去也一樣就是一個字元串聯接而以,唯一要注意的是標點符號的使用如:' 這個符號,因為很多時候要用到這個,我碰到好多人都是這里出錯了。例如:Dim strsql As String
strsql = "select * from TblSystemData"
If dh.Text <> " " Then '單號
strsql = strsql & " where ChrCode like " & "'" & dh.Text & "'"
End If
當然你也可以把第一個它移到前面去。但我是單獨放出來,這樣更清楚一點。
接著是執行了。這個你可以看一下二樓的。例如:rst3.Open strsqlm con1_offer, adOpenKeyset, adLockOptimistic, adCmdText
㈡ VB如何寫SQL語句
sql="select * from (表格名字) where id='" & text1.text & "' and name='" & text2.text & "' and age="' & text3.text & "' order by id asc"
order by id asc 這句意思是按id升序排列,可寫可不寫。
㈢ 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
㈣ sql語言和VB語言的區別
sql是資料庫語言,VB是編程語言
Visual Basic是一種由微軟公司開發的包含協助開發環境的事件驅動編程語言。從任何標准來說,VB都是世界上使用人數最多的語言——不僅是盛贊VB的開發者還是抱怨VB的開發者的數量。它源自於BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接資料庫,或者輕松的創建ActiveX控制項。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的結構化查詢語言語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使他具有極大的靈活性和強大的功能。
㈤ vb怎麼連接sql
一、配置ODBC數據源
1、在控制面板中,雙擊管理工具,然後打開ODBC數據源管理器。
2、在「系統DSN」選項卡中,單擊「添加」按鈕,打開「創建新數據源」對話框,在「名稱」列表框中選擇「SQL Server」。選好單擊完成
3、在打開「建立新的數據源到SQL Server」對話框,在「名稱」文本框輸入新數據源的名稱,描述數據源按理解的方式來寫(隨意)。「伺服器」就選擇要連接到的伺服器。
4、選擇使用用戶輸入登錄的ID和密碼的SQL 驗證
。選連接SQL默認設置
5、再下一步下一步,完成。測試數據源看連接是否成功就行了。成功後按確定。
二、VB中設置連接
1、添加部件Mircrosoft ADO Data Control 6.0(OLEDB),把部件拖到窗體。
2、對ADO部件點右鍵選屬性,選擇使用連接字元串,按生成。
3、選擇Mircosoft OLE DB Providar for SQL Server
按下一步
1、輸入伺服器名稱
2、使用指定的伺服器信息
3、在伺服器上選擇資料庫
這時就選擇在SQL Server建好的資料庫就行了
5、測試連接可以看到連接是否成功。
㈥ vb中如何執行SQL語句
Private Sub Command1_Click()
On Error GoTo errhandle
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset
If Trim(Text1.Text) = "" Then
MsgBox "沒有輸入sql語句"
Exit Sub
Else
If Left(Trim(Text1.Text), 6) = "select" Then
MsgBox "不是查詢語句"
Exit Sub
End If
End If
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "test.mdb;Persist Security Info=False"
rs.Open Trim(Text1.Text), conn, adOpenKeyset, adLockOptimistic
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
Set rs = Nothing
Set conn = Nothing
rs.Close
conn.Close
Exit Sub
errhandle:
MsgBox "輸入的sql語句有誤"
End Sub
㈦ 關於SQL和VB的一些區別
sql是資料庫操作語言,VB是計算機語言
VB是利用SQL語言來操作資料庫
㈧ VB 執行SQL語句
VB中「對象關閉時,不允許操作」解決方案
最近兩天在VB里弄一些小程序,好久沒接觸了,感覺有些陌生了,還算有點基礎吧,遇到一些小的難題基本上都能解決。不過,這下真的遇到難題了,琢磨半天硬是沒弄出結果來,在網上查資料也沒個底,如同大海撈針呀,關鍵是沒一點正經的答案和可行的方案。
問題是這樣的,在VB中執行存儲過程,想輸出返回值並將數據綁定到DataGrid控制項中,本來是件小菜的問題,在.NET、ASP里都做通過,但在VB里卻是折磨了半天也沒弄出來。還是自己動手吧,有問題就得想辦法,一步步來吧。
先在SQL 2000中寫好存儲過程了,(這里不再寫出存儲過程的具體代碼了,也就是一個返回值,一個記錄集)然後在VB中引用ADO對象,輸入如下代碼,以調用存儲過程:
Dim lackconn As New ADODB.Connection
lackconn.ConnectionString=Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=boyd;Initial Catalog=mydb;Data Source=(local)
lackconn.CursorLocation = adUseClient '設置為客戶端
lackconn.Open
Set lackcmd = New ADODB.Command
lackcmd.ActiveConnection = lackconn
lackcmd.CommandText = myproc '這里為存儲過程名稱
lackcmd.CommandType = adCmdStoredProc '指定為存儲過程
Set param = lackcmd.CreateParameter(@num, adInteger, adParamReturnValue, 4) '@num為返回值
lackcmd.Parameters.Append param
Set lackrs = New ADODB.Recordset
Set lackrs = lackcmd.Execute()
msgbox 站點總數: & lackcmd.Parameters(@num).Value & 個
Set mydatagrid.DataSource = lackrs 'mydatagrid為對象名稱
mydatagrid.Refresh '刷新DataGrid
'下面關閉資料庫對象等略去
就這樣的一個簡單的代碼,一運行就出錯,提示錯誤在「Set mydatagrid.DataSource = lackrs」,錯誤就是「對象關閉時,不允許操作」。郁悶ing...,這哪來的錯誤呢?我根本沒關閉資料庫連接,其他內容也是沒有問題的呀。花了很長時間沒能解決,大清早再打開電腦時,靈機一動,搞定了。這里將這種現象作下總結,順便記錄一下本次解決過程。
產生這種現象有幾種原因:
1、資料庫對象連接被關閉了,這肯定會報錯的,當然也不能輸出任何結果的,這時只需注意「先使用、後關閉」就行了,解決這樣的問題就是暫時先不要關閉資料庫連接就行了。
2、返回記錄為空時,也會報錯。如下面的代碼
sql = select * from dbcn where 狀態='0'
Set rs = conn.Execute(sql)
If Not rs.EOF Then
For m = 1 To rs.RecordCount
List_status.AddItem rs(1) & ( & rs(2) & ): & rs(4)
rs.MoveNext
Next m
End If
如果沒有數據的話,這里也會提示這樣的錯誤,將查詢代碼放到SQL查詢分析器里運行一下,果然沒有數據,呵呵。當然這樣的錯誤可以採用一些方法排除或過濾的。
3、這就是我這次所遇到的問題的中心了,我們將目光轉向存儲過程。的確,在SQL查詢分析器里,存儲過程是正常運行,而且不會報錯,也有數據。但仔細想想,因為在存儲過程可能包含了有關SQL語句影響行數的信息,這樣一來也就可能會導致這樣的情況。
打開存儲過程,在begin後面加上一句代碼:set nocount on,屏蔽掉這些信息。OK,VB中的程序巳經能夠正常運行了,而且數據也是正常的。
順便解釋一下吧,打開查詢分析器中的幫助,查找一下有關set nocount on的信息,我們會找到這些東西:
====================================
SET NOCOUNT
使返回的結果中不包含有關受 Transact-SQL 語句影響的行數的信息。
語法
SET NOCOUNT { ON | OFF }
注釋
當 SET NOCOUNT 為 ON 時,不返回計數(表示受 Transact-SQL 語句影響的行數)。當 SET NOCOUNT 為 OFF 時,返回計數。
即使當 SET NOCOUNT 為 ON 時,也更新 @@ROWCOUNT 函數。
當 SET NOCOUNT 為 ON 時,將不給客戶端發送存儲過程中的每個語句的 DONE_IN_PROC 信息。當使用 Microsoft® SQL Server™ 提供的實用工具執行查詢時,在 Transact-SQL 語句(如 SELECT、INSERT、UPDATE 和 DELETE)結束時將不會在查詢結果中顯示nn rows affected。
如果存儲過程中包含的一些語句並不返回許多實際的數據,則該設置由於大量減少了網路流量,因此可顯著提高性能。
SET NOCOUNT 設置是在執行或運行時設置,而不是在分析時設置。
許可權
SET NOCOUNT 許可權默認授予所有用戶。
示例
下例在 osql 實用工具或 SQL Server 查詢分析器中執行時,可防止顯示有關受影響的行數的信息。
USE pubs
GO
-- Display the count message.
SELECT au_lname
FROM authors
GO
USE pubs
GO
-- SET NOCOUNT to ON and no longer display the count message.
SET NOCOUNT ON
GO
SELECT au_lname
FROM authors
GO
-- Reset SET NOCOUNT to OFF.
SET NOCOUNT OFF
GO
這里點到為止吧,具體的解釋我想MS的幫助會比我說的更專業更清楚些,參考下吧。
㈨ vb中怎麼使用sql
select * from 成績表 where 姓名='張大保'
翻譯為中文就是
從「成績表」中選擇所有姓名是「張大保」的記錄
From 從...... From 成績表 就是「從成績表...」的意思
Form 是表格、表單的意思,用在這里是沒意義的
另外在條件前面要加上where,意思就是在什麼地方去找你要的東西
這些都是最基本的,你先把sql的語法搞清楚了再到VB中應用