當前位置:首頁 » 存儲配置 » vbnet調用存儲過程

vbnet調用存儲過程

發布時間: 2023-05-18 19:46:19

A. vb.net調用存儲過程

m_userinfo.dbparam_upid是枝搜什麼,前後都沒有提到
應該是「@upid」吧,伍歷你不是在猛橘歷設置參數嗎。

B. vb.net登陸按鈕調用存儲過程,有兩個comm對象時出錯

你上面的報錯是不是類似「連接已經打開」或者「連接已經關閉」之類?有可能是你說的原因,sqlConnection最好不要寫成全局的變數,應該在每個調用的地方重新new,最好用using結構來聲明。

C. VB.net 調用存儲過程

其實還是ADO.NET常用對象的基礎用法知識;可以自己閱讀MSDN文檔來了解這方面的入門知識。for example:--------------------------CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum varchar(50),@sInvoiceDate datetime,@sBuyCity varchar(50))AS Insert Into SMB_InvoiceInfo (MemberID,ClaimMethod,InvoiceNum,InvoiceDate,InvoiceCity) Values (@sUserID,@sClaimMethod,@sInvoiceNum,@sInvoiceDate,@sBuyCity) return @@IDENTITY GO ---------------------------------------------Dim CN As New SqlConnection() Dim InvoiceID As String Try CN.ConnectionString = DBConStr CN.Open() Dim CMD As SqlCommand CMD = New SqlCommand("AddNewInvoiceInfo", CN) CMD.CommandType = CommandType.StoredProcere CMD.Parameters.Add(New SqlParameter("@sUserID", SqlDbType.Int)) CMD.Parameters("@sUserID"和悶).Value = CInt(UserID.Text) CMD.Parameters.Add(New SqlParameter("@sClaimMethod", SqlDbType.VarChar, 50)) CMD.Parameters("@sClaimMethod").Value = TransName.Text CMD.Parameters.Add(New SqlParameter("@sInvoiceNum", SqlDbType.VarChar, 50)) CMD.Parameters("碧棚歲@sInvoiceNum").Value = InvoiceNum.Text CMD.Parameters.Add(New SqlParameter("@sInvoiceDate", SqlDbType.DateTime)) CMD.Parameters("@sInvoiceDate"悔睜).Value = InvoiceDate.SelectedDate.Date CMD.Parameters.Add(New SqlParameter("@sBuyCity", SqlDbType.VarChar, 50)) CMD.Parameters("@sBuyCity").Value = BuyCity.Text CMD.Parameters.Add(New SqlParameter("@sInvoiceID", SqlDbType.Int)) CMD.Parameters("@sInvoiceID").Direction = ParameterDirection.ReturnValue CMD.ExecuteNonQuery() InvoiceID = CMD.Parameters("@sInvoiceID").Value.ToString() CMD.Dispose() Catch ex As Exception Response.Write(ex.ToString()) Finally CN.Close() End Try

D. 用VB調用存儲過程

'容易,純代碼,粘到Form1,根據SQL是否採用Windows身份驗證模式,代碼做相應修改
'將conn.Execute後面的語句 改成自己的存儲語句
'新建工程時,運行VB6.0後,必須在工程中引用ADO庫,具體做法如下:
'工程--〉引用--〉選擇「Microsoft ActiveX Data Objects 2.0(或者2.1-2.8)Library」
Option Explicit ''VB編譯時強制談液聲明變數.如果發現沒有聲明的變數會提示錯誤.
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Dim msg As String

Private Sub Form_Load()
'------------------------------------------------------------------------------------------------------------
OpenCn "db", "master" '修改 第一個參數:本地SQL服務管理器名稱"db" ;第二個參數:連接數租圓據庫名稱"master"
'------------------------------------------------------------------------------------------------------------
openRs ("select * from spt_datatype_info") '執行查詢語句 select * from spt_datatype_info 返回所有列
Do While rs.EOF <含型物> True
str = rs.Fields("ss_dtype") '返回指定列 ss_dtype
msg = msg + str + "_"
rs.MoveNext
Loop
MsgBox msg '顯示查詢結果
'-------------------------------------------------------------------------------------------------------------
conn.Execute ("INSERT INTO spt_server_info (attribute_id,attribute_name,attribute_value) VALUES (" & Int(Rnd * 99999999) & ",'myname','myvalue')")
MsgBox "成功添加一組數據!"
'-------------------------------------------------------------------------------------------------------------
conn.Execute ("UPDATE spt_server_info SET attribute_name='myname',attribute_value='myvalue' WHERE attribute_id=1")
MsgBox "已修改第一組數據!"
'-------------------------------------------------------------------------------------------------------------
End Sub

Private Function OpenCn(ServerName As String, DatabaseName As String) As Boolean '連接資料庫
Dim mag As String
On Error GoTo strerrmag
Set conn = New ADODB.Connection
conn.ConnectionTimeout = 25
conn.Provider = "sqloledb"
conn.Properties("data source").Value = ServerName 'SQL Server 服務管理器 伺服器名稱 ServerName
conn.Properties("initial catalog").Value = DatabaseName '資料庫名稱 DatabaseName
conn.Properties("integrated security").Value = "SSPI"
conn.Open
'----------------------------------------------------------- SQL設密碼的話,做以下修改
'With conn
' .CursorLocation = adUseClient
' .Provider = "sqloledb"
' .Properties("Data Source").Value = SQLServerName
' .Properties("Initial Catalog").Value = DatabasesName
' .Properties("User ID") = UserID
' .Properties("Password") = LoadPassword
' .Properties("prompt") = adPromptNever
' .ConnectionTimeout = 15
' .Open
'End With
'-----------------------------------------------------------
OpenCn = True
MsgBox "資料庫連接成功!"
Exit Function
strerrmag:
mag = "Data can't connect"
Call MsgBox(mag, vbOKOnly, "Error:Data connect")
Exit Function
End Function

Private Function cloCn() '斷開資料庫
On Error Resume Next
If conn.State <> adStateClosed Then conn.Close
Set conn = Nothing
MsgBox "已將資料庫連接斷開!"
End Function

Private Function openRs(ByVal strsql As String) As Boolean '連接資料庫記錄集
Dim mag As String
On Error GoTo strerrmag
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = conn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open strsql
End With
openRs = True
Exit Function

strerrmag:
mag = "data not connect" & vbCrLf & strsql
Call MsgBox(mag, vbOKOnly, "error:connect")
openRs = False

End Function

Private Function cloRs() '斷開資料庫記錄集
On Error Resume Next
If rs.State <> adStateClosed Then rs.Clone
Set rs = Nothing
MsgBox "已將資料庫記錄集連接斷開!"
End Function

E. VB.NET如何調用存儲過程

我提供下c#里實現的方法:
SqlConnection conn="連接資料庫語句";
SqlCommand cmd=new SqlCommand("存儲過程名 A或B",conn);
cmd.CommandType=CommandType.StoredProcere; //這句表示cmd的字元串是存儲過程
cmd.Parameters.Add("@存儲過程里的參數,用@開頭",SqlDbType.Nvarchar).Value="參數值";
...如果還有參數,繼續上句
conn.Open();
cmd.ExecuteNonQuery();

如果不要參數,直接把cmd.Parameters這句去掉。SqlDbType表示參數的類型,自己選擇

F. 在vb中調用sql存儲過程

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:

請問在vb中如何調用sql存儲過程?謝謝啦!

解析:

你可以使用 ADODB.Command 來調用存儲過程,如:

Dim adoComm As Object

' 創建一個對象,我鎮亮們用來調用存儲過程

Set adoComm = CreateObject("ADODB.Command")

With adoComm

'緩旅前 設置連接,假設 adoConn 為已經連接的 ADODB.Connection 對象

.ActiveConnection = adoConn

' 類型為存儲過程,擾清adCmdStoredProc = 4

.CommandType = 4

' 存儲過程名稱

.CommandText = "你的存儲過程名稱"

' 設置輸入參數

.Parameters.Item("@輸入參數").Value = "值"

' 執行存儲過程

.Execute

If .Parameters.Item("@返回參數名稱").Value = True Then

Else

End If

End With

' 釋放對象

Set adoComm = Nothing

G. VB.net中怎麼訪問存儲過程


使用SQL存儲漏宏悶過程有什麼好處
■SQL存儲過程執行絕毀起來比SQL命令文本快得多。當一個SQL語句包含在存儲過程中時,伺服器不必每次執行它時都要分析和編譯它。
■調用存儲過程,可以認為是一個三層結構。這使你的程序易於維護。如果程序需要做某些改動,你只要改動存儲過程即可
■你可以在存儲過程中利用Transact-SQL的強大功能。一個SQL存儲過程可以包含多個SQL語句。你可以使用變數和條件。這意味著你可以用存儲過程建立非常復雜的查詢,以非常復雜的方式更新資料庫。
■最後,這也許是最重要的,在存儲過程中可以使用參數。你可以傳送和返回參數。你還可以得到一個返回值(從SQL RETURN語句)。
環境:WinXP+VB6+sp6+SqlServer2000
資料庫:test
表:Users
CREATE TABLE [dbo].[users] ([id] [int] IDENTITY (1, 1) NOT NULL ,
[truename] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[regname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[pwd] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[sex] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[email] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[jifen] [decimal](18, 2) NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[users] WITH NOCHECK ADD
CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED
([id]) ON [PRIMARY]
GO
存儲過程select_users
CREATE PROCEDURE select_users @regname char(20), @numrows int OUTPUT
AS
Select * from users
SELECT @numrows = @@ROWCOUNT
if @numrows = 0
return 0
else return 1
GO
存儲過程insert_users
CREATE PROCEDURE insert_users @truename char(20), @regname char(20),@pwd char(20),@sex char(20),@email char(20),@jifen decimal(19,2)
AS
insert into users(truename,regname,pwd,sex,email,jifen) values(@truename,@regname,@pwd,@sex,@email,@jifen)
GO
在VB環境中,添加DataGrid控制項,4個按鈕,6個文本框
代碼簡單易懂。
『引用返彎microsoft active data object 2.X library
Option Explicit
Dim mConn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim rs3 As ADODB.Recordset Dim rs4 As ADODB.Recordset
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter
'這里用第一種方法使用存儲過程添加數據
Private Sub Command1_Click()
Set cmd = New ADODB.Command
Set rs1 = New ADODB.Recordset
cmd.ActiveConnection = mConn
cmd.CommandText = "insert_users"
cmd.CommandType = adCmdStoredProc
Set param = cmd.CreateParameter("truename", adChar, adParamInput, 20, Trim(txttruename.Text))
cmd.Parameters.Append param
Set param = cmd.CreateParameter("regname", adChar, adParamInput, 20, Trim(txtregname.Text))
cmd.Parameters.Append param
Set param = cmd.CreateParameter("pwd", adChar, adParamInput, 20, Trim(txtpwd.Text))
cmd.Parameters.Append param
Set param = cmd.CreateParameter("sex", adChar, adParamInput, 20, Trim(txtsex.Text))
cmd.Parameters.Append param
Set param = cmd.CreateParameter("email", adChar, adParamInput, 20, Trim(txtemail.Text))
cmd.Parameters.Append param
『下面的類型需要注意,如果不使用adSingle,會發生一個精度無效的錯誤
Set param = cmd.CreateParameter("jifen", adSingle, adParamInput, 50, Val(txtjifen.Text))
cmd.Parameters.Append param
Set rs1 = cmd.Execute
Set cmd = Nothing
Set rs1 = Nothing
End Sub
這里用第二種方法使用存儲過程添加數據
Private Sub Command2_Click()
Set rs2 = New ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = mConn
cmd.CommandText = "insert_users"
cmd.CommandType = adCmdStoredProc
cmd.Parameters("@truename") = Trim(txttruename.Text)
cmd.Parameters("@regname") = Trim(txtregname.Text)
cmd.Parameters("@pwd") = Trim(txtpwd.Text)
cmd.Parameters("@sex") = Trim(txtsex.Text)
cmd.Parameters("@email") = Trim(txtemail.Text)
cmd.Parameters("@jifen") = Val(txtjifen.Text)
Set rs2 = cmd.Execute
Set cmd = Nothing
Set rs1 = Nothing
End Sub
'這里用第三種方法使用連接對象來插入數據
Private Sub Command4_Click()
Dim strsql As String
strsql = "insert_users '" amp; Trim(txttruename.Text) amp; "','" amp; Trim(txtregname.Text) amp; "','" amp; Trim(txtpwd.Text) amp; "','" amp; Trim(txtsex.Text) amp; "','" amp; Trim(txtemail.Text) amp; "','" amp; Val(txtjifen.Text) amp; "'"
Set rs3 = New ADODB.Recordset Set rs3 = mConn.Execute(strsql)
Set rs3 = Nothing
End Sub
'利用存儲過程顯示數據
『要處理多種參數,輸入參數,輸出參數以及一個直接返回值
Private Sub Command3_Click()
Set rs4 = New ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = mConn
cmd.CommandText = "select_users"
cmd.CommandType = adCmdStoredProc
'返回值
Set param = cmd.CreateParameter("RetVal", adInteger, adParamReturnValue, 4)
cmd.Parameters.Append param
'輸入參數
Set param = cmd.CreateParameter("regname", adChar, adParamInput, 20, Trim(txtregname.Text))
cmd.Parameters.Append param
'輸出參數
Set param = cmd.CreateParameter("numrows", adInteger, adParamOutput)
cmd.Parameters.Append param
Set rs4 = cmd.Execute()
If cmd.Parameters("RetVal")。Value = 1 Then
MsgBox cmd.Parameters("numrows")。Value
Else
MsgBox "沒有記錄"
End If
MsgBox rs4.RecordCount
Set DataGrid1.DataSource = rs4
DataGrid1.Refresh
End Sub
'連接資料庫
Private Sub Form_Load()
Set mConn = New Connection
mConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=yang"
mConn.CursorLocation = adUseClient '設置為客戶端
mConn.Open
End Sub
'關閉數據連接
Private Sub Form_Unload(Cancel As Integer)
mConn.Close
Set mConn = Nothing
End Sub

H. vb.net 中調用了SQL SERVER的存儲過程,結果是一張表table1,怎樣在DataGridView中只顯示其中一行

呵呵,看樣子你應該是想顯示的一行是特定的一行吧
你看這樣行不行
你用rs接受到存儲過程返回的表後
直接給rs設置一個過濾條件,例如 rs.Filter="ID=1"
將你要的那條記錄過濾出來後再將rs綁定到DataGridView

希望能幫到你……

熱點內容
實現秘聞存儲的方法 發布:2025-02-08 10:23:33 瀏覽:168
怎麼在微信發文件夾 發布:2025-02-08 10:09:45 瀏覽:795
cryengine源碼 發布:2025-02-08 09:50:58 瀏覽:394
aardio可以反編譯嗎 發布:2025-02-08 09:50:53 瀏覽:484
公司營業執照密碼是什麼 發布:2025-02-08 09:47:56 瀏覽:855
體驗腳本 發布:2025-02-08 09:46:15 瀏覽:691
醫學生需要什麼配置的筆記本 發布:2025-02-08 09:45:34 瀏覽:772
騷擾電話資料庫 發布:2025-02-08 09:45:34 瀏覽:180
u盤文件加密器 發布:2025-02-08 09:40:35 瀏覽:770
plc數據存儲app 發布:2025-02-08 09:37:17 瀏覽:709