sqlvb
⑴ 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進行事務處理
事務處理是在數據處理時經常遇到的問題,經常用到的方法有以下3種總結整理如下:
方法1:直接寫入到sql 中
在存儲過程中使用 BEGIN TRANS, COMMIT TRANS, ROLLBACK TRANS 實現
begin trans
declare @orderDetailsError int,@procuntError int
delete from [order details] where proctid=42
select @orderDetailsError =@@error
delete from procts where proctid=42
select @procuntError=@@error
if(@orderDetailsError =0 and @procuntError=0)
COMMIT TRANS
else
ROLLBACK TRANS
優點:
所有事務邏輯包含在一個單獨的調用中
擁有運行一個事務的最佳性能
獨立於應用程序
限制:
事務上下文僅存在於資料庫調用中
資料庫代碼與資料庫系統有關
方法2 :使用ADO.NET 實現
使用ADO.NET 實現,使用這種方式的優點是可以在中間層來管理事務,當然你也可以選擇在數據層來實現。
SqlConnection 和OleDbConnection 對象有一個 BeginTransaction 方法,它可以返回 SqlTransaction
或者OleDbTransaction 對象。而且這個對象有 Commit 和 Rollback 方法來管理事務
SqlConnection sqlConnection = new SqlConnection("workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False");
sqlConnection.Open();
SqlTransaction myTrans = sqlConnection.BeginTransaction();
SqlCommand sqlInsertCommand = new SqlCommand();
sqlInsertCommand.Connection = sqlConnection
sqlInsertCommand.Transaction=myTrans;
try{
sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('北京',1)";
sqlInsertCommand.ExecuteNonQuery();
sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('上海',1)";
sqlInsertCommand.ExecuteNonQuery();
myTrans.Commit();
}catch(Exception ex)
{
myTrans.Rollback();
}
finally
{
sqlConnection.Close();
}
優點:
簡單性
和數據據事務差不多的快
獨立於資料庫,不同資料庫的專有代碼被隱藏了
缺點:
事務不能跨越多個資料庫連接
事務執行在資料庫連接層上,所以需要在事務過程中維護一個資料庫連接
ADO.NET分布事務也可以跨越多個資料庫,但是其中一個SQL SERVER 資料庫的話,通過用SQL SERVER連接伺服器連接到別的資料庫,但是如果是在DB2和Orcal之間就不可以。
以上兩種事務是經常用到的事務處理方法。
方法3 COM+事務(分布式事務)
.NET Framework 依靠 MTS/COM+ 服務來支持自動事務。COM+ 使用 Microsoft Distributed Transaction Coordinator (DTC) 作為事務管理器和事務協調器在分布式環境中運行事務。
這樣可使 .NET 應用程序運行跨多個資源結合不同操作(例如,將定單插入 SQL Server 資料庫、將消息寫入 Microsoft 消息隊列 (MSMQ) 隊列、以及從 Oracle 資料庫檢索數據)
的事務。
COM+事務處理的類必須繼承System.EnterpriseServices.ServicedComponent,其實web service就是繼承System.EnterpriseServices.ServicedComponent,所以web service也支持
COM+事務。
定義一個COM+事務處理的類
[Transaction(TransactionOption.Required)]
public class DataAccess:System.EnterpriseServices.ServicedComponent
{
}
TransactionOption枚舉類型支持5個COM+值(Disabled,NotSupported,Required,RequiresNew,Supported)
Disabled 忽略當前上下文中的任何事務。
NotSupported 使用非受控事務在上下文中創建組件。
Required 如果事務存在則共享事務,並且如有必要則創建新事務。
RequiresNew 使用新事務創建組件,而與當前上下文的狀態無關。
Supported 如果事務存在,則共享該事務。
一般來說COM+中的組件需要Required 或Supported。當組件用於記錄或查帳時RequiresNew 很有用,因為組件應該與活動中其他事務處理的提交或回滾隔離開來。
派生類可以重載基類的任意屬性。如DataAccess選用Required,派生類仍然可以重載並指定RequiresNew或其他值。
COM+事務有手動處理和自動處理,自動處理就是在所需要自動處理的方法前加上[AutoComplete],根據方法的正常或拋出異常決定提交或回滾。
手動處理就是調用ContextUtil類中EnableCommit,SetComplete,SetAbort方法。
public string testTransaction()
{
try
{
ContextUtil.EnableCommit();
InsertARecord1();
InsertARecord2();
ContextUtil.SetComplete();
return "succeed!";
}
catch(Exception ex)
{
ContextUtil.SetAbort();
return "failed!";
}
}
public void InsertARecord1()
{
string strconn="workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand command=new SqlCommand("insert into tbTree(Context,ParentID) values('北京',1)",conn);
command.ExecuteNonQuery();
conn.Close();
}
public void InsertARecord2()
{
string strconn="workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand command=new SqlCommand("insert into tbTree(Context,ParentID) values('上海',1)",conn);
command.ExecuteNonQuery();
conn.Close();
}
在需要事務跨 MSMQ 和其他可識別事務的資源(例如,SQL Server 資料庫)運行的系統中,只能使用 DTC 或 COM+ 事務,除此之外沒有其他選擇。DTC 協調參與分布式事務的所有資源管理器, 也管理與事務相關的操作。
這種做法的缺點是,由於存在 DTC 和 COM 互操作性開銷,導致性能降低。
COM+事務處理的類必須強命名。
⑶ 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 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語句,還可編寫出其他方式的查找,這里就不多做介紹了!
⑸ sql語言和VB語言的區別
sql是資料庫語言,VB是編程語言
Visual Basic是一種由微軟公司開發的包含協助開發環境的事件驅動編程語言。從任何標准來說,VB都是世界上使用人數最多的語言——不僅是盛贊VB的開發者還是抱怨VB的開發者的數量。它源自於BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接資料庫,或者輕松的創建ActiveX控制項。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的結構化查詢語言語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使他具有極大的靈活性和強大的功能。
⑹ vb和sql有什麼聯系嗎,咋就感覺著兩種語言有點相似呢 求高手解答啊,謝謝啦,。
SQL是結構化查詢語言(或者說資料庫搜索引擎),其他程序設計語言(VB、VC、Delphi等等)可以通過SQL連接資料庫。打個比方:如果說資料庫是倉庫,那麼SQL就是倉庫管理員,其他程序設計語言(比如VB)就是來倉庫取貨的,他們都要經過管理員的授權同意以及協助才能從倉庫中取到所需的貨物。不知道這樣比喻,能幫助你理解嗎?
⑺ Sql資料庫和vb的連接
'使用ADODB對象,必須先進行對象模型的引用,步驟如下
'通過菜單[工程] -- [引用],勾選 Microsoft ActiveX Data Object 2.6 Library
'Microsoft ActiveX Data Object 2.7 Library
'Microsoft ActiveX Data Object 2.8 Library
'都可以
完整的代碼以及相關注釋如下:(代碼完全可以復制使用)
需要在窗體上添加一個按鈕和一個DataGrid1控制項
Option Explicit
Private Sub Command1_Click()
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>基本知識>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'ADODB對象模型,是VB用來操作資料庫的有力工具,其中兩個對象最有價值;
'1.ADODB.Connection -- 用來連接資料庫文件:
'主要完成對資料庫以及數據表的操作;比如:創建資料庫,創建、刪除、復制數據表等等。
'2.ADODB.Recordset -- 用來返回數據記錄集:
'主要完成對記錄的操作;比如:返回記錄,添加、刪除記錄等等。使用SQL語句可以實現強大的功能。
'下面簡單介紹使用ADODB對象進行資料庫操作的步驟
'一,聲明並實例化對象
Dim Conn As ADODB.Connection '聲明連接資料庫對象 -- 用來連接資料庫文件,並對資料庫以及數據表的操作
Dim Rst As ADODB.Recordset '聲明數據記錄集對象 -- 用來返回數據記錄集,並對記錄的操作
Set Conn = New ADODB.Connection '資料庫對象的實例化
Set Rst = New ADODB.Recordset '記錄集對象的實例化
'二,連接資料庫文件
'執行 ADODB.Connection對象的Open方法,完成資料庫的連接
Conn.CursorLocation = adUseClient
'注意下面的一些參數,需要根據使用者的特定情況進行修改
'Password=密碼 中的「密碼」,是登錄SQL SERVER 的密碼
'User ID=實例名 中的「實例名」,是SQL SERVER 的實例名,一般使用「sa」
'Initial Catalog=資料庫名 中的「資料庫名」,只你要訪問的資料庫名
'Data Source=SQL SERVER伺服器名 中的「SQL SERVER伺服器名」是你要訪問使用的安裝了SQL SERVER的伺服器計算機名
Conn.Open "Provider=SQLOLEDB.1;Password=密碼;Persist Security Info=True;User ID=實例名;Initial Catalog=資料庫名;Data Source=SQL SERVER伺服器名"
'三,返回記錄集
'執行 ADODB.Recordset對象的Open方法,獲得記錄集
'注意,把「數據表名」改為你的實際數據表名稱
Rst.Open "Select * From 數據表名", Conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = Rst
Set Rst = Nothing '釋放記錄集對象
Set Conn = Nothing '釋放資料庫對象
End Sub
⑻ VB6.0 如何連接SQL 資料庫
你在SQL SERVER中新建一個資料庫,然後將這個資料庫生成腳本文件,根據情況修改後轉存為MASTER下的一個存儲過程。至於資料庫名和數據文件路徑可以做成參數傳入,然後在VB中用連到MASTER後執行這個存儲過程。
用VB與建立的SQL資料庫連接
1.使用ODBC DSN連接字元串
DSN=mySystemDSN;Uid=myUsername;Pwd=myPassword
----------------------------------------------
2.使用無ODBC DSN的連接字元串
(1)標准安全性
Driver={SQL Server};Server=MyServerName;DataBase=myDatabaseName; _
Uid=myUsername;Pwd=myPassword
------------------------------------------------
(2)信任連接(分兩種)
1)連接字元串1
Driver={SQL Server};Server=MyServerName;DataBase=myDatabaseName;Uid=;Pwd=;
2)連接字元串2
Driver={SQL Server};Server=MyServerName;DataBase=myDatabaseName;Trusted_Connection=yes
---------------------------------------------------------------------------
(3)連接本地SQL SERVER
Driver={SQL Server};Server=(local);DataBase=myDatabaseName; _
Uid=myUsername;Pwd=myPassword
-------------------------------------------------------------
(4)連接遠程SQL SERVER
Driver={SQL Server};Server=xxx.xxx.xxx.xxx; _
Address=xxx.xxx.xxx.xxx,1433; _
Network=DBMMSOCN;DataBase=myDatabaseName; _
Uid=myUsername;Pwd=myPassword
-------------------------------------------------------
3.使用OLEDB PROVIDER FOR SQL SERVER的連接字元串
(1)標准安全性
Provider=SQLOLEDB.1; _
Password=myPassword; _
User ID=myUsername; _
Initial Catalog=myDatabaseName; _
Data Source=MyServerName
-------------------------------------------
(2)信任連接
Provider=SQLOLEDB.1; _
Initial Catalog=myDatabaseName; _
Data Source=MyServerName; _
Integrated Security=SSPI
--------------------------------------
(3)連接到命名實例
Provider=SQLOLEDB.1; _
Initial Catalog=myDatabaseName; _
Data Source=myServerName\myInstanceName; _
Password=myPassword; _
User ID=myUsername
--------------------------------------
(4)連接到本地SQL SERVER
Provider=SQLOLEDB.1; _
Password=myPassword; _
User ID=myUsername; _
Initial Catalog=myDatabaseName; _
Data Source=(local)
-----------------------------------------
(5)連接到遠程SQL SERVER
Provider=SQLOLEDB.1; _
Netwprk Library=DBMMSOCN; _
Data Source=xxx.xxx.xxx.xxx,1433; _
Password=myPassword; _
User ID=myUsername; _
Initial Catalog=myDatabaseName;