asp.net 调用存储过程 20
建立存储过程:createprocpro_UserChoose@UserIdvarchar(50)='',@UserNamevarchar(20)='',@DepartI...
建立存储过程:
create proc pro_UserChoose
@UserId varchar(50) = '',
@UserName varchar(20) = '',
@DepartId int=0
AS
BEGIN
select * from view_UserInfo
where UserId like case when @UserId='' then UserId else @UserId end
and UserName like case when @UserName = '' then UserName else @UserName end
and DepartId like case when @DepartId = 0 then DepartId else @DepartId end
END
页面调用代码如下:
List<Model.UserInfo> list = new List<Model.UserInfo>();
DataSet ds = new DataSet();
SqlConnection conn =new SqlConnection( ConfigurationManager.AppSettings[0]);
SqlCommand cmd = new SqlCommand("pro_UserChoose", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@UserId",SqlDbType.Char,50);
cmd.Parameters.Add("@UserName", SqlDbType.Char,20);
cmd.Parameters.Add("@DepartId", SqlDbType.Int,4);
cmd.Parameters["@UserId"].Value = userid;
cmd.Parameters["@UserName"].Value = username;
cmd.Parameters["@DepartId"].Value = departid;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
Model.UserInfo user = new Model.UserInfo();
user.UserId = dr["UserId"].ToString();
user.UserName = dr["UserName"].ToString();
list.Add(user);
}
conn.Close();
dr.Close();
return list;
}
我通过调试,得到那三个参数的值,然后把他拿到数据库中的建的存储过程中运行,明明有记录的,可是结果就是不进while(dr.Read()),取不到值;到底为什么会这样啊?想不通! 各位大侠,谁能帮哈我啊!分儿都给你拉!!!
我已经加设断点,把值给取出来拿到数据库中运行过,的确能够有记录,可是他就不进while,太怪了 展开
create proc pro_UserChoose
@UserId varchar(50) = '',
@UserName varchar(20) = '',
@DepartId int=0
AS
BEGIN
select * from view_UserInfo
where UserId like case when @UserId='' then UserId else @UserId end
and UserName like case when @UserName = '' then UserName else @UserName end
and DepartId like case when @DepartId = 0 then DepartId else @DepartId end
END
页面调用代码如下:
List<Model.UserInfo> list = new List<Model.UserInfo>();
DataSet ds = new DataSet();
SqlConnection conn =new SqlConnection( ConfigurationManager.AppSettings[0]);
SqlCommand cmd = new SqlCommand("pro_UserChoose", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@UserId",SqlDbType.Char,50);
cmd.Parameters.Add("@UserName", SqlDbType.Char,20);
cmd.Parameters.Add("@DepartId", SqlDbType.Int,4);
cmd.Parameters["@UserId"].Value = userid;
cmd.Parameters["@UserName"].Value = username;
cmd.Parameters["@DepartId"].Value = departid;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
Model.UserInfo user = new Model.UserInfo();
user.UserId = dr["UserId"].ToString();
user.UserName = dr["UserName"].ToString();
list.Add(user);
}
conn.Close();
dr.Close();
return list;
}
我通过调试,得到那三个参数的值,然后把他拿到数据库中的建的存储过程中运行,明明有记录的,可是结果就是不进while(dr.Read()),取不到值;到底为什么会这样啊?想不通! 各位大侠,谁能帮哈我啊!分儿都给你拉!!!
我已经加设断点,把值给取出来拿到数据库中运行过,的确能够有记录,可是他就不进while,太怪了 展开
展开全部
如果没有报错,那就在页面调用的开始加个断点,看看userid;username;departid的值是什么。然后在数据库里执行以下存储过程,把三个值带进去试一试,因为在数据库里分析一下会比较直接。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你看下我的,用的时候很简单,和你拼sql差别不是很大,就一个属性而已Commandtype这个属性storeprocedure就是调用存储过程,text是sql语句,我的sqlhelper.ExecuteNonQuery的参数,
public
static
int
ExecuteNonQuery(string
cmmdText,
CommandType
cmdType,
params
SqlParameter[]
parameters)
{
using
(SqlConnection
con
=
new
SqlConnection(conString))
{
con.Open();
SqlCommand
cmd
=
PrepareCommand(con,
cmmdText,
cmdType,
parameters);
return
cmd.ExecuteNonQuery();
}
}最后一个是参数,如果你的存储过程有参数,就在这里加,eg:SqlHelper.ExecuteNonQuery("过程名",
CommandType.StoredProcedure,new
SqlParameter("参数名字",值));如果没有参数,则SqlHelper.ExecuteNonQuery("过程名",
CommandType.StoredProcedure,
null);
不懂的话请继续说,谢谢采纳
public
static
int
ExecuteNonQuery(string
cmmdText,
CommandType
cmdType,
params
SqlParameter[]
parameters)
{
using
(SqlConnection
con
=
new
SqlConnection(conString))
{
con.Open();
SqlCommand
cmd
=
PrepareCommand(con,
cmmdText,
cmdType,
parameters);
return
cmd.ExecuteNonQuery();
}
}最后一个是参数,如果你的存储过程有参数,就在这里加,eg:SqlHelper.ExecuteNonQuery("过程名",
CommandType.StoredProcedure,new
SqlParameter("参数名字",值));如果没有参数,则SqlHelper.ExecuteNonQuery("过程名",
CommandType.StoredProcedure,
null);
不懂的话请继续说,谢谢采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个,你确定在代码里边有把值取出来?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询