无法通过c#中的数据集存储过程获取结果

时间:2013-03-03 09:57:22

标签: c# visual-studio-2010 sql-server-2008

我有一个存储过程如下:

ALTER PROCEDURE GetPatientSearchResultFromLocation(@Searchvalue varchar(100))
AS
   SELECT    
      RegNo, FirstName, MiddleName, LastName, EmailId, FrCityId, Location, MobileNo
   FROM         
      PatientsReg
   WHERE     
      (Location LIKE '@Searchvalue%');

这里,如果我只运行SQL查询,它会给我相应的输出,但是当我在这个过程中使用它时,它不返回任何值,只是简单的表结构。

我的c#代码如下:

public DataTable GetPatientDetailsFromLocation(string Searchvalue)
{
        command = new SqlCommand("GetPatientSearchResultFromLocation", connection);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.AddWithValue("@Searchvalue", Searchvalue);
        command.UpdatedRowSource = UpdateRowSource.OutputParameters;
        adp = new SqlDataAdapter(command);
        connection.Open();
        adp.Fill(ds);
        connection.Close();
         return ds.Tables[0];
}

没有异常/错误,但也没有值。

2 个答案:

答案 0 :(得分:1)

错误在LIKE子句中

  (Location LIKE '@Searchvalue%');

应该是

  (Location LIKE @Searchvalue);

没有单引号,而'%'外卡应直接在C#代码中添加到参数值。

 command.Parameters.AddWithValue("@Searchvalue", Searchvalue + "%");

答案 1 :(得分:0)

尝试改变这一点:

(Location LIKE '@Searchvalue%');

为:

(Location LIKE @Searchvalue + '%');