为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个count变量返回的是Output字符?

为什么这个count变量返回的是Output字符?

神不在的星期二 2023-01-03 19:15:48

public DataTable VoteItemsShow(string ID,out string count)
{
SqlParameter[] para = new SqlParameter[]{
new SqlParameter("@ID",ID),
new SqlParameter("@count",ParameterDirection.Output) //这个@count是存储过程中的输出参数,我右边的参数应该是写错了,,因为调用这个函数返回的是Output字符,而不是@count应该怎么写呢?
};  
DataTable dt = sqlhelper.ExecuteQuery("procVoteItemsShow", para, CommandType.StoredProcedure,out count);
return dt;
}

这个是被调用的函数,SqlHelper

public DataTable ExecuteQuery(string cmdText, SqlParameter[] para, CommandType ct,out string count)
{
DataTable dt = new DataTable();
try
{
cmd = new SqlCommand(cmdText, GetConn());
cmd.Parameters.AddRange(para);
cmd.CommandType = ct;
SqlDataReader sdr = cmd.ExecuteReader();
count = cmd.Parameters["@count"].Value.ToString(); //这里接收@count的值可否?为什么这个count变量返回的是Output字符?
dt.Load(sdr);
sdr.Close();
}
catch (Exception ex)
{

throw ex;
}
finally
{
if (conn.State == ConnectionState.Open) conn.Close();
}
return dt;
}

查看完整描述

3 回答

?
暮色呼如

TA贡献1587条经验 获得超9个赞

paramData = new SqlParameter("("@count", SqlDbType.Image);  
//此处SqlDbType.Image也可能是SqlDbType.VarChar,SqlDbType.Char等,具体看你的字段类型
paramData.Value = bytParamCont;  
//bytParamCont为存储过程中取到的值ParameterDirection.Output
sqlCommand.Parameters.Add(paramData);

查看完整回答
反对 回复 2023-01-06
?
慕后森

TA贡献1547条经验 获得超5个赞

SqlParameter[] para = new SqlParameter[]{
new SqlParameter("@ID",ID),
new SqlParameter("@count",SqlDbType.VarChar) 
};  
para[1].Direction = ParameterDirection.Output;
//执行完之后
count = para[1].Value as string;//或ToString();

查看完整回答
反对 回复 2023-01-06
?
慕的地6264312

TA贡献1590条经验 获得超6个赞

设置参数的属性为ParameterDirection.Output,执行存贮过程后,就可以取到在存储过程中付给参数的值了

查看完整回答
反对 回复 2023-01-06

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信