ASP.NET(C#)在使用存储过程时捕获异常(sql数据库)

时间:2015-06-16 09:44:08

标签: c# asp.net sql-server stored-procedures

代码如下......我尝试使用调试点,它显示:

  

过程或函数'usp_select_legal1_data'需要参数'@tower',这是未提供的。

C#代码:

ALTER PROCEDURE [dbo].[usp_select_legal1_data]
    @tower nvarchar(50)
AS
BEGIN
    SET NOCOUNT ON;

    SELECT distinct
      [tower_to]
      ,[tower_from]
      ,[sy_no]
    FROM [dbo].[legal1]
    WHERE ((tower_to = @tower) or (tower_from = @tower))
END

这是我的存储过程:

2

3 个答案:

答案 0 :(得分:3)

更改

SqlDataSource2.SelectParameters.Add("@tower", tw2);

SqlDataSource2.SelectParameters.Add("tower", tw2);

答案 1 :(得分:1)

问题在于@,因为参数名称是塔。请参阅下面的MSDN文档 https://msdn.microsoft.com/en-us/library/f58z9c1a(v=vs.110).aspx

答案 2 :(得分:0)

我找到了问题的答案。问题在于定义存储过程。它仍然将程序视为文本命令。这是我用过的东西

  

SqlDataSource2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;

现在它正在运作。