C# 在C中读取输出sql server存储过程参数#
我希望SQLServer2008中inserts语句有两个输出ID。我相信我在初始化AddParam时犯了一些错误,因为它没有插入数据。存储过程本身,也包括没有参数的代码,都经过了测试并正常工作 存储过程 视图模型 我需要帮助的班级C# 在C中读取输出sql server存储过程参数#,c#,sql-server-2008,stored-procedures,webforms,C#,Sql Server 2008,Stored Procedures,Webforms,我希望SQLServer2008中inserts语句有两个输出ID。我相信我在初始化AddParam时犯了一些错误,因为它没有插入数据。存储过程本身,也包括没有参数的代码,都经过了测试并正常工作 存储过程 视图模型 我需要帮助的班级 将@StatementAnswerID和@ElectronicSignatureID设置为输出参数: cmd.Parameters("@StatementAnswerID").Direction = ParameterDirection.Output; cmd.Pa
将
@StatementAnswerID
和@ElectronicSignatureID
设置为输出参数:
cmd.Parameters("@StatementAnswerID").Direction = ParameterDirection.Output;
cmd.Parameters("@ElectronicSignatureID").Direction = ParameterDirection.Output;
执行存储过程。
全文如下:
cmd.Parameters("@StatementAnswerID").Value;
cmd.Parameters("@ElectronicSignatureID").Value;
你收到错误信息了吗?
private static long InsertStatementAnswer_DF_P(ADB.Model.AssessmentStatementAnswerViewModel assessmentAnswerObj, MSSQL sql)
{
bool killConnection = Utils.getConnection(ref sql);
long returnValue = 0;
try
{
sql.SetSProc("[dbo].[p_assessment_dfn_statementAnswer_insert]");
sql.AddParam("@StatementID", assessmentAnswerObj.StatementID);
sql.AddParam("@StaffID", assessmentAnswerObj.StaffID);
sql.AddParam("@AssessmentID", assessmentAnswerObj.AssessmentID);
sql.AddParam("@StatementText", assessmentAnswerObj.StatementText);
sql.AddParam("@StatementDate", assessmentAnswerObj.Date);
sql.AddParam("@SignatureCheck", assessmentAnswerObj.ElectronicSignatureCheck);
sql.AddParam("@SignatureDate", assessmentAnswerObj.SignatureDateAndTime);
sql.AddOutputParam("@StatementAnswerID", SqlDbType.BigInt, 0);
sql.AddOutputParam("@ElectronicSignatureID", SqlDbType.BigInt, 0);
sql.ExecuteNonQuery();
}
finally
{
if (killConnection)
sql.Dispose();
}
return returnValue;
}
cmd.Parameters("@StatementAnswerID").Direction = ParameterDirection.Output;
cmd.Parameters("@ElectronicSignatureID").Direction = ParameterDirection.Output;
cmd.Parameters("@StatementAnswerID").Value;
cmd.Parameters("@ElectronicSignatureID").Value;
private static long InsertStatementAnswer_DF_P(ADB.Model.AssessmentStatementAnswerViewModel assessmentAnswerObj, MSSQL sql)
{
bool killConnection = Utils.getConnection(ref sql);
long returnValue = 0;
try
{
sql.SetSProc("[dbo].[p_assessment_dfn_statementAnswer_insert]");
sql.AddParam("@StatementID", assessmentAnswerObj.StatementID);
sql.AddParam("@StaffID", assessmentAnswerObj.StaffID);
sql.AddParam("@AssessmentID", assessmentAnswerObj.AssessmentID);
sql.AddParam("@StatementText", assessmentAnswerObj.StatementText);
sql.AddParam("@StatementDate", assessmentAnswerObj.Date);
sql.AddParam("@SignatureCheck", assessmentAnswerObj.ElectronicSignatureCheck);
sql.AddParam("@SignatureDate", assessmentAnswerObj.SignatureDateAndTime);
// sql.AddOutputParam("@StatementAnswerID", SqlDbType.BigInt, 0);
// sql.AddOutputParam("@ElectronicSignatureID", SqlDbType.BigInt, 0);
SqlParameter outPutParameter1 = new SqlParameter();
outPutParameter1 .ParameterName = “@StatementAnswerID”;
outPutParameter1 .SqlDbType = System.Data.SqlDbType.Int;
outPutParameter1 .Direction = System.Data.ParameterDirection.Output;
SqlParameter outPutParameter2 = new SqlParameter();
outPutParameter2 .ParameterName = “@ElectronicSignatureID”;
outPutParameter2 .SqlDbType = System.Data.SqlDbType.Int;
outPutParameter2 .Direction = System.Data.ParameterDirection.Output;
sql.Parameters.Add(outPutParameter2 );
sql.Parameters.Add(outPutParameter1 );
sql.ExecuteNonQuery();
//Here Your Values
string ElectronicSignatureID= outPutParameter2 .Value.ToString();
string StatementAnswerID= outPutParameter1 .Value.ToString();
}
finally
{
if (killConnection)
sql.Dispose();
}
return returnValue;
}