ここでは、SQL Server データベース接続を使用する Web アプリを作成しています。ストアド プロシージャがあります。
ALTER PROC [dbo].[spMSTransaction_Insert]
@OrgID int,
@SiteID int,
@TransactionCategoryID int,
@TransactionDesc varchar(300),
@IsActive bit,
@CreatedDate datetime,
@CreatedBy varchar(50),
@ModifiedDate datetime,
@ModifiedBy varchar(50)
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRAN
INSERT INTO [dbo].[MSTransaction]
(
[OrgID],
[SiteID],
[TransactionCategoryID],
[TransactionDesc],
[IsActive],
[CreatedDate],
[CreatedBy],
[ModifiedDate],
[ModifiedBy]
)
SELECT @OrgID,
@SiteID,
@TransactionCategoryID,
@TransactionDesc,
@IsActive,
@CreatedDate,
@CreatedBy,
@ModifiedDate,
@ModifiedBy
COMMIT
そして、コードビハインドで私はこれを持っています:
protected void btnSave_Click(object sender, EventArgs e)
{
logID = Helper.GetLogID();
try
{
LKLog.Write(logID, "Transaction.aspx.cs", "btnSave_Click", "Start Method", string.Empty, Helper.GetUserName());
orgID = 1;
siteID = 1;
if (string.IsNullOrEmpty(hfOrgID.Value))
{
clsTransaction.InsertTransaction(Helper.LogID, Helper.OrgID, Helper.SiteID,
CommonFunctions.StringToInt(ddlTransactionCategory.SelectedValue), txtTransactionDesc.Text, true);
}
else
{
int transactionID = CommonFunctions.StringToInt(hfOrgID.Value);
clsTransaction.UpdateTransaction(logID, orgID, siteID, 1,
CommonFunctions.StringToInt(ddlTransactionCategory.SelectedValue), txtTransactionDesc.Text, true);
}
string message = string.Format(Constants.SaveMessage, "Transaction");
LKLog.Write(logID, "Transaction.aspx.cs", "btnSave_Click", "End Method", string.Empty, Helper.GetUserName());
ScriptManager.RegisterStartupScript(this, this.GetType(), "Info", "alert('" + message + "');window.location ='Transaction.aspx';", true);
}
catch (Exception ex)
{
LKLog.Write(logID, "Transaction.aspx.cs", "btnSave_Click", ex.StackTrace, ex.Message, Helper.GetUserName());
throw;
}
}
クラスは次のとおりです。
public static void InsertTransaction(decimal logID, int orgID, int siteID, int TransactionCategoryID, string TransactionDesc, bool isActive)
{
LKLog.Write(logID, "clsTransaction.cs", "InsertTransaction", "Start Method", string.Empty, Helper.GetUserName());
using (SqlConnection conn = new SqlConnection(CommonFunctions.GetAppDBConnection(Constants.AppID, Constants.TMDDBConnection)))
{
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "spMSTransaction_Insert";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("orgID", orgID));
cmd.Parameters.Add(new SqlParameter("siteID", siteID));
cmd.Parameters.Add(new SqlParameter("TransactionCategoryID", TransactionCategoryID));
cmd.Parameters.Add(new SqlParameter("TransactionDesc", TransactionDesc));
cmd.Parameters.Add(new SqlParameter("IsActive", siteID));
cmd.Parameters.Add(new SqlParameter("Username", Helper.GetUserName()));
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
LKLog.Write(logID, "clsTransaction.cs", "InsertTransaction", ex.StackTrace, ex.Message, Helper.GetUserName());
throw;
}
finally
{
conn.Close();
}
}
LKLog.Write(logID, "clsTransaction.cs", "InsertTransaction", "End Method", string.Empty, Helper.GetUserName());
}
しかし、データを挿入しようとすると、エラーが指摘されました
プロシージャまたは関数 'spMSTransaction_Insert' には、指定されていないパラメーター '@CreatedDate' が必要です。
エラー行は次のとおりです(73行目は赤でマークされています):
Line 71: {
Line 72: LKLog.Write(logID, "clsTransaction.cs", "InsertTransaction", ex.StackTrace, ex.Message, Helper.GetUserName());
Line 73: throw;
Line 74: }
Line 75: finally
私は混乱しています、間違いは何ですか、私がここに欠けているものの提案はありますか?