错误:必須宣告純量變數 "@ddbh"。
后台代码:
SqlDataSource4.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
SqlDataSource1.SelectParameters.Clear();
SqlDataSource4.SelectCommand = "selectmethod";
SqlDataSource4.SelectParameters.Add("ddbh", ypbh);
GridView2.DataBind();
存储过程:
ALTER PROCEDURE selectmethod
@ddbh varchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT ddbh,site,method'
SELECT @sql = @sql + ',MIN(CASE WHEN size = '''+ size + ''' THEN value END) AS ['+ size +']'
FROM (SELECT DISTINCT size FROM method ) A
ORDER BY size DESC
SELECT @sql = @sql + ',unit FROM method where ddbh=@ddbh GROUP BY ddbh,site,method,unit'
EXEC (@sql)
end
go
实在找不出错在哪里,哪位帮帮我,
------解决方案--------------------SqlDataSource4.SelectParameters.Add("@ddbh", ypbh);
------解决方案--------------------参数没有声明。
------解决方案--------------------我晕了,没猜错的话是你的ypbh为空,那ypbh.ToString()当然就不行了,
这样写
SqlDataSource4. SelectParameters.Add("@ddph",SqlDbType .VarChar,50)= ypbh;
为这句加上判断
if(string.IsNullOrEmprty(ypbh)
{
SqlDataSource4. SelectParameters.Add("@ddph",SqlDbType .VarChar,50)= DBNull.Value;
}
else
{
SqlDataSource4. SelectParameters.Add("@ddph",SqlDbType .VarChar,50)= ypbh;
}
用存储过程的时候变量不能为空值,要显示的指明为DBNull.Value
------解决方案--------------------我也想知道,正在找這方面的資料~~~~~