首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求大神帮助!有关VS中调用SQL中的无参数的存储过程的奇怪有关问题

2013-07-08 
求大神帮助!!有关VS中调用SQL中的无参数的存储过程的奇怪问题我的数据库是这样写得:单号对应的textbox1是

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


单号对应的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运行时是不是存在问题。
而且你这个存储过程是有参数的。需要你提供参数进去。而且对于列的格式是有要求的
[解决办法]
结合楼上提供的网站,还参考了网上的资料,我试着写了一下,不知道符不符合你的情况



CREATE PROCEDURE [dbo].[zidongLSH]
(
@letter        varchar(10),    --首字母,可以多个字母
    @LSHkey        varchar(20),    --表中的流水号列名,最好是主键
    @tablename     varchar(20)     --表名
)
as
set nocount on
begin
--最终结果号
declare @zzh nvarchar(20) 
--设字头
    declare @zt char(2)
    set @zt = @letter
--设日期
    declare @ym char(8)
    set @ym = CONVERT(varchar(12) , getdate(), 112)
--设排头“BX+日期”
declare @pt char(10)
set @pt = @zt+@ym

----查询该表最大的流水号
DECLARE @sql    NVARCHAR(200)  --sql语句
DECLARE @NUM    INT            --最大流水号
SET @sql='SELECT ISNULL (MAX(CONVERT(INT,SUBSTRING('+@LSHkey+',11,4))),0)+1 FROM '+@tablename
    --创建临时表
    CREATE TABLE TEMP3(TOTAL INT);
    --写入查询得到的数据
    INSERT INTO TEMP3 EXEC(@sql);
    --再查询出值
    SET @NUM=(SELECT TOTAL FROM TEMP3)
    DROP TABLE TEMP3
set @zzh= @pt+SUBSTRING(CONVERT(CHAR(5),10000+(@NUM)),2,4)
insert into 维护报修表 values(@zzh);

end

2.至于调用,你可以上网查一下例子

热点排行