以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]存储过程解惑  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=61781)

--  作者:jnletao
--  发布时间:2014/12/19 8:59:00
--  [求助]存储过程解惑
MSSQL  存储过程 中

采用  return  语句 返回整数值

在SQL查询中正常返值

在foxtable里采用  ExecuteScalar()  语句   无法返回值

请问什么原因?

以下为相关代码
简易存储过程
以下内容为程序代码:

1 SET ANSI_NULLS ON
2 GO
3 SET QUOTED_IDENTIFIER ON
4 GO
5 ALTER PROCEDURE [dbo].[编号生成]
6 AS
7
8 BEGIN
9     DECLARE @Key1 int = 12
10     return @Key1
11 END
12


以下为查询语句

以下内容为程序代码:

1 Dim dr As DataRow = e.DataRow
2 Dim prefix As String = "ABCD" & format(dr("制单时间"),"yyMMdd") & "-" \'设置收费单编号前缀
3 Dim tablename As String = e.DataTable.name
4 Dim Key1 As Integer
5 Dim cmd As New SQLCommand
6 cmd.C
7 cmd.CommandText = "Exec 编号生成 \'" & prefix & "\',\'" & tablename & "\'"
8 Key1 = cmd.ExecuteScalar()



key1 值为空,获取不到

--  作者:有点甜
--  发布时间:2014/12/19 9:13:00
--  

1、存储过程,参考 http://www.cnblogs.com/ylbtech/archive/2012/08/14/2638257.html

 

2、这一句有问题 cmd.CommandText = "Exec 编号生成 \'" & prefix & "\',\'" & tablename & "\'"

 

 改成,而且红色的可以不要 cmd.CommandText = "Exec 编号生成 " & prefix & ", " & tablename


--  作者:逛逛
--  发布时间:2014/12/19 9:20:00
--  
我理解的 ExecuteScalar 是返回表格的第一列第一行的值,其他都忽略
如果我的理解没错,就应该用表来返回,不能用值来返回。