当前位置:首页 » 存储配置 » 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

希望能帮到你……

热点内容
scraino编程 发布:2025-02-08 11:59:41 浏览:261
我的世界服务器进不去该怎么办 发布:2025-02-08 11:47:41 浏览:234
linux的telnet 发布:2025-02-08 11:47:36 浏览:286
压缩袋打折 发布:2025-02-08 11:46:02 浏览:257
c语言结构体题目 发布:2025-02-08 11:46:01 浏览:336
如何svn限制一些外网不能访问 发布:2025-02-08 11:46:00 浏览:990
服务器外网ip咋配置 发布:2025-02-08 11:42:19 浏览:641
最优树算法 发布:2025-02-08 11:37:19 浏览:229
linux保存路由 发布:2025-02-08 11:36:25 浏览:557
M合成算法 发布:2025-02-08 11:26:22 浏览:329