1
我有我自己的DLL(用於數據訪問層)。我使用轉義字符技術來避免用戶輸入錯誤,但最近我決定使用參數化查詢來增強我的類,以防止出現所有可能的錯誤。修改是簡單還是困難?參數化查詢問題
如何轉換查詢以使用參數化查詢?
請給我看一些示例代碼來闡明這個想法。
我有我自己的DLL(用於數據訪問層)。我使用轉義字符技術來避免用戶輸入錯誤,但最近我決定使用參數化查詢來增強我的類,以防止出現所有可能的錯誤。修改是簡單還是困難?參數化查詢問題
如何轉換查詢以使用參數化查詢?
請給我看一些示例代碼來闡明這個想法。
這是我將如何在c#.net和SQL服務器中完成它。
string sQuery = @"INSERT INTO [UserJob]
(
[SIJCJOBID],
[SIJCCHDID],
[UserID],
[SageDatabaseID],
[MaxLineValue],
[MaxAuthorisationValue],
[UpdatedDate],
[UpdatedUser]
)
VALUES
(
@SIJCJOBID,
@SIJCCHDID,
@UserID,
@SageDatabaseID,
@MaxLineValue,
@MaxAuthorisationValue,
@UpdatedDate,
@UpdatedUser
)
SELECT SCOPE_IDENTITY() AS 'ID'";
using (SqlCommand oSqlCommand = new SqlCommand(sQuery))
{
oSqlCommand.Parameters.AddWithValue("@SIJCJOBID", this.SIJCJOBID);
oSqlCommand.Parameters.AddWithValue("@SIJCCHDID", this.SIJCCHDID);
oSqlCommand.Parameters.AddWithValue("@UserID", this.UserID);
oSqlCommand.Parameters.AddWithValue("@SageDatabaseID", this.SageDatabaseID);
oSqlCommand.Parameters.AddWithValue("@MaxLineValue", this.MaxLineValue);
oSqlCommand.Parameters.AddWithValue("@MaxAuthorisationValue", this.MaxAuthorisationValue);
oSqlCommand.Parameters.AddWithValue("@UpdatedDate", DateTime.Now);
oSqlCommand.Parameters.AddWithValue("@UpdatedUser", StaticStore.CurrentUser != null ? StaticStore.CurrentUser.UserName : "SYSTEM");
using (DataTable dt = DataTier.ExecuteQuery(oSqlCommand))
{
if (dt.Rows.Count == 1)
{
int.TryParse(dt.Rows[0]["ID"].ToString(), out m_UserJobID);
}
}
}