求大神帮助!有关VS中调用SQL中的无参数的存储过程的奇怪有关问题
求大神帮助!!有关VS中调用SQL中的无参数的存储过程的奇怪问题
我的数据库是这样写得:
我在vs中设计是这样的

单号对应的textbox1是只读模式,我想设计一个一打开这个界面textbox1就调用sql中的存储过程自动生成单号,我参考了网上:
执行一个没有参数的存储过程的代码,写了一下:
可是依然无法实现textbox1自动生成单号,求大神帮忙解决!~~谢谢!~~
------解决方案--------------------
1:我提供一个流水号给你分享
http://www.cnblogs.com/worfdream/articles/3046446.html
2:lz你首先先测试一下你的存储过程,exec运行时是不是存在问题。
而且你这个存储过程是有参数的。需要你提供参数进去。而且对于列的格式是有要求的
------解决方案--------------------
结合楼上提供的网站,还参考了网上的资料,我试着写了一下,不知道符不符合你的情况
我的数据库是这样写得:
CREATE PROCEDURE PRO_AutoLSH ---自动生成单号的存储过程目的是自动生成流水号的单号
(
@BX varchar(10), --首字母,可以多个字母
@单号 varchar(20), --表中的流水号列名,最好是主键
@维护报修表 varchar(20) --表名
)
AS
begin
DECLARE @LSHID NVARCHAR(20)
DECLARE @TLSH VARCHAR(20)
DECLARE @NUM INT
DECLARE @sql NVARCHAR(200)
----查询该表最大的流水号
SET @sql='SELECT ISNULL(MAX(CONVERT(INT,SUBSTRING('+@单号+',8,4))),0)+1 FROM '+@维护报修表
--创建临时表
CREATE TABLE TEMP1(TOTAL INT);
--写入查询得到的数据
INSERT INTO TEMP1 EXEC(@sql);
--再查询出值
SET @NUM=(SELECT TOTAL FROM TEMP1)
DROP TABLE TEMP1
--拼接下一个流水号:BX+年份4位+月份2位+4位编号(如J2010120001)
SET @TLSH=@BX+SUBSTRING(CONVERT(VARCHAR(100),GETDATE(),112),1,6)+SUBSTRING(CONVERT(CHAR(5),10000+@NUM),2,4)
SET @sql=''
SET @sql='SELECT @LSH='+''''+@TLSH+''''+' FROM '+@维护报修表
EXEC sp_executesql
@sql,
N'@LSH NVARCHAR(20) OUTPUT',
@LSHID OUTPUT
SELECT @LSHID
end
我在vs中设计是这样的
单号对应的textbox1是只读模式,我想设计一个一打开这个界面textbox1就调用sql中的存储过程自动生成单号,我参考了网上:
执行一个没有参数的存储过程的代码,写了一下:
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.selectCommand = new SqlCommand();
da.selectCommand.Connection = conn;
da.selectCommand.CommandText = "PRO_AutoLSH";
da.selectCommand.CommandType = CommandType.StoredProcedure;
可是依然无法实现textbox1自动生成单号,求大神帮忙解决!~~谢谢!~~
SQL
存储过程
无参数调用
------解决方案--------------------
1:我提供一个流水号给你分享
http://www.cnblogs.com/worfdream/articles/3046446.html
2:lz你首先先测试一下你的存储过程,exec运行时是不是存在问题。
而且你这个存储过程是有参数的。需要你提供参数进去。而且对于列的格式是有要求的
------解决方案--------------------
结合楼上提供的网站,还参考了网上的资料,我试着写了一下,不知道符不符合你的情况