vb调用存储过程返回值
我尝试过,不知道怎么使用返回值,但是使用了select 1,select 0这样的,
然后用Command.ExecuteScalar方法
‘贰’ 请问VB编程中所说的返回值是什么反到了哪里有什么用
返回值是针对函数而言的,也就是Function,一般有两种类型,一种是有返回值,一种是没有返回值的
没有返回值的就和过程Sub是一个道理的,就是执行了这一段命令,完成了某个任务,
另一种就是有返回值的了,这个函数实际上是两个过程,一是执行了这一段命令,完成了某个任务,同时还要得到某个值,此时这个值存储在这个函数的内存地址中,如果需要把这个值作为一个常量赋给某个变量就直接赋给那个变量即可,如果不需要赋给某个变量,可以当做一般的函数调用。
函数的返回值暂时返回到函数的分配的内存地址中,随时等待把它赋给需要接收这个值的变量。
举两个例子
Function
sum1(ByVal
a
As
Integer,
ByVal
b
As
Integer)
Dim
s
As
Integer
s
=
a
+
b
End
Function
Function
sum2(ByVal
a
As
Integer,
ByVal
b
As
Integer)
As
Integer
Dim
s
As
Integer
s
=
a
+
b
sum2
=
s
End
Function
sum1是计算a+b,不返回a+b的和,也就是只对a+b加了,但结果不存到sum1中
sum2是计算a+b,返回a+b的和,也就是不仅对a+b加了,并且结果保存到sum2中,从而就可以用
c=sum2(1,2)这样调用sum2,c得到1+2的值
‘叁’ vb程序中如何获取存储过程的返回值
首先,你这个是delphi的代码,由于VB与Delphi还是有较大差异的,vb爱好者未必能帮你。另外有关获取返回值到底是0是1比较简单,sql写完以后有状态可以检测的。
‘肆’ vb6.0获取sqlserver存储过程的返回值
Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Cnn_c As New ADODB.Command
Dim cnn_p As ADODB.Parameter
Cnn.ConnectionString = ConnStr'连接字符串
With Cnn
'.Provider = "MSDASQL"
.CursorLocation = adUseClient
.Open
End With
Set Cnn_c.ActiveConnection = Cnn
With Cnn_c
.CommandType = adCmdStoredProc
.CommandText = "存储过程名"
End With
Set cnn_p = Cnn_c.CreateParameter("ReTurn", adInteger, adParamReturnValue)
Cnn_c.Parameters.Append cnn_p
‘这里添加其他参数
Set Rs = Cnn_c.Execute'执行
'Cnn_c.Parameters("ReTurn")这就是返回值
Rs.close
Cnn.Close
Set cnn_p = Nothing
Set Cnn_c = Nothing
Set Rs = Nothing
Set Cnn = Nothing
‘伍’ VB该如何显示存储过程返回的结果集
可以换个方式来实现
Private Sub Command1_Click()
Dim Conn As ADODB.Connection
Set Conn = New ADODB.Connection
Conn.Open GetConnStr
SQL = "CREATE PROCEDURE 商品信息 AS SELECT 净成本 From B产品 ORDER BY ID"
Conn.Execute SQL
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "商品信息", Conn, 1, 1
While (Not rs.EOF)
ListView1.ListItems.Add , , rs.Fields("净成本").Value '增加到ListView中
rs.MoveNext '记录集下移一行
Wend
Set rs = Nothing
Set Conn = Nothing
End Sub
‘陆’ vb.net 如何获得存储过程的返回值
DimcmdAsNewSqlCommand()
cmd.CommandType=CommandType.StoredProcere
cmd.CommandText="procname"
'参数名可以任意,但最好与存储过程的return一致
'默认值随便写
DimretAsNewSqlParameter("ret",0)
'返回值类型才有下面一句
ret.Direction=ParameterDirection.ReturnValue
cmd.Parameters.Add(ret)
'其他的参数和一般的sql语句没区别
'...
cmd.ExecuteNonQuery()
'得到了ret
‘柒’ asp.net (vb语言)如何返回存储过程值
tem.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public bool checkUser(string UserName, string PassWord)
{
。。。。。。
SqlCommand cmd = new SqlCommand("存储过程名", conn);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.Add(new SqlParameter("@username", SqlDbType.Int));
cmd.Parameters["@username"].Value = UserName;
cmd.Parameters["@password"].Value = PassWord;
cmd.Parameters["@ischeck"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
string backString = cmd.Parameters["@ischeck"].Value.ToString();
cmd.Dispose();
if (backString =="true")
{
return true;
}
else
{
return false;
}
}
}
说明一下,那个存储过程,看你怎么写,你应该有两个输入参数,一个是UserName 一个是password,还有个输出参数ischeck,你再自己把存储过程写好就OK了,另外调用的时候只要判断checkUser的返回值。。。就可以了
‘捌’ vb获取sql server存储过程返回的结果集
我来解答。
Create PROCEDURE [dbo].[Test]
AS
BEGIN
set nocount on--关闭掉 受影响记录行数的消息 就行了
select * from abc
END
‘玖’ VB 返回值
'返回值:调用一个函数(包括自定义的),执行一系列语句,将一个结果返回给调用者
'比如 调用 自定义函数 MyFun,可以得到两个数的和
Private Sub Command1_Click()
Dim S As Single
S = MyFun(2, 3) '得到 2 与 3 的和
Print S
S = MyFun(8, 3) '得到 8 与 3 的和
Print S
End Sub
Private Function MyFun(a As Single, b As Single) As Single
MyFun = a + b '返回 和
' MyFun = a * b'返回 积
End Function
‘拾’ vb6调用存储过程返回结果集
Set rs = cmd.Execute
没有错误,除非你的存储过程有参数,而你没有传递参数
