我正在上SQLHelper课。以及如何获得@Email value?
protected void Button1_Click(object sender, EventArgs e)
{
try
{
bl.user_id = TextBox1.Text;
DataTable dt= bl.forget();
if (dt.Rows.Count != 0)
{
Response.Write( dt.Rows[0]["@Email"].ToString());
}
}
catch (Exception g)
{
Response.Write(g.Message);
}
}部分..。
DataSet ds = SqlHelper.ExecuteDataset(bl.str, CommandType.StoredProcedure,
"forFetPasswo",new SqlParameter("@Email", bl.user_id));
DataTable dt = new DataTable();
if (ds.Tables.Count != 0)
{
dt = ds.Tables[0];
}
return dt; sql部分.
Alter PROCEDURE Abc
@Email nvarchar(100)output
AS
BEGIN
if (@Email !=null)
begin
if exists(select * from UserLogin where Emailid =@Email )
begin
select @Email ='mail send'
end
end
else
begin
select @Email='invalid email id'
end
END
GO发布于 2011-07-27 12:18:55
您正在返回一个输出参数,但没有在.net代码中处理它。你在找一个数据集。
快速解决方法是在最后将select @Email AS email添加到存储的proc中。
否则,将new SqlParameter更改为另一个使用方向的过载
发布于 2011-07-27 12:20:19
在您的存储过程中,您只分配@Email变量,应该在存储过程的末尾添加类似的内容
select @Email as Email并在代码中访问它
Response.Write( dt.Rows[0]["Email"].ToString()); 并删除output参数;)
发布于 2013-10-02 05:09:53
在您的情况下,使用用户DataSet或输出参数.因为您只返回一个Value....use输出参数。
var param=new SqlParameter("@Email",SqlDBType.VarChar,100).Direction=ParameterDirection.Output;
SqlHelper.ExecuteNonQuery(con,Abc,param);
var Email=param.Value.toString();同样,在SP中使用SET而不是SELECT,如果u can....btw没有多大关系
https://stackoverflow.com/questions/6844065
复制相似问题