猿问

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

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;
}

神不在的星期二
浏览 142回答 3
3回答

暮色呼如

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

慕后森

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();

慕的地6264312

设置参数的属性为ParameterDirection.Output,执行存贮过程后,就可以取到在存储过程中付给参数的值了
随时随地看视频慕课网APP
我要回答