asp.net 存储过程求助

来源:百度知道 编辑:UC知道 时间:2024/06/19 04:53:18
CREATE PROCEDURE P_Search
@Id int=null,
@Name varchar(50)=null
as
if @Id=0
begin
select * from Services where ServicesName LIKE'% @Name%'
end
else
begin
select * from SkillFiles where S_Title LIKE'% @Name%'
end

GO
这个存储过程怎样调用啊?谢谢大家了,是一个模糊查询的.

public override List<poll> Search(int id,string name)
{
using (SqlConnection cn = new SqlConnection("连接字符串"))
{
SqlCommand cmd = new SqlCommand("存储过程的名字", cn);
//说明是个存储过程
cmd.CommandType = CommandType.StoredProcedure;
//添加参数
cmd.Parameters.Add("@Id", SqlDbType.Int).Value = id;
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = name;
//打开数据库
cn.Open();

//执行操作
SqlDataReader reader = cmd.ExecuteReader();

List<poll> polls = new List<poll>();

//获取返回的值,存入到集合中
while (reader.Read())
{
polls.Add(new poll((int)reader["列1"]),
(string)reader["列2"],(bool)reader["列3"]);//等等,存储过程里的select * 最好用select 列1,列2..替换
}

return polls;
}
}
///说明
///你的Search返回的结果集,我用List<poll>代替
/// new poll里保存存储过程的返回值 reader["返回结果"];