我创建了一个存储过程来从动态 sql 中获取返回值。我得到以下异常:
String[1]:Size 属性的大小为 0 无效。
我的过程:
CREATE proc [dbo].[Review_Get_PrePopValue](@sqlQuery nvarchar(500), @display nvarchar(200) OUTPUT)
as
EXEC sp_executesql @sqlQuery,
@display OUTPUT
我的代码:
public string GetAnswerValue(string contentSQL, string parameter, string parameterValue)
{
string sqlstatement = contentSQL.Replace(parameter, parameterValue);
using (var conn = new SqlConnection(_connectionString))
{
string prePopValue;
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "Review_Get_PrePopValue";
comm.Parameters.Add(new SqlParameter("@sqlQuery", SqlDbType.NVarChar)).Value = sqlstatement;
comm.Parameters.Add(new SqlParameter
{
Direction = ParameterDirection.Output,
ParameterName = "@display",
SqlDbType = SqlDbType.NVarChar
});
conn.Open();
comm.ExecuteNonQuery();
prePopValue = comm.Parameters["@display"].Value.ToString();
return prePopValue;
}
}
我的 sql 字符串:
Select @display = Grant_Number From GMIS_Grants where grant_id=1