簡體   English   中英

ASP.NET C#連接到Oracle數據庫以更新數據失敗

[英]ASP.NET C# connect to Oracle database to update data failture

我的項目是帶有C#的ASP.NET WebForm。 我想更新Oracle數據。 因此,我將C#代碼編寫如下:

但是cmdQry2.ExecuteNonQuery()返回零,並且不會更新任何數據。 有人知道SQL或C#有什么問題嗎?

DateTime dateTime = DateTime.Now;
string strDateTime = string.Format("{0:000}{1:00}{2:00}{3:00}{4:00}", dateTime.Year - 1911, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute);
string SQL2 = "update \"UserProfile1\" set \"chLogInDT\" = :strDateTime, \"chLogOutDT\" = :strDateTime2, \"chUserSector\" = '電子書',\"chLogInStat\" = :aIP where RTrim(\"chUserID\") = :chUserID ";

Conn.Open();
using (var cmdQry2 = Conn.CreateCommand())
{
    string ip = CommonUse.GetIPAddress();
    cmdQry2.CommandText = SQL2;
    cmdQry2.CommandType = CommandType.Text;
    cmdQry2.Parameters.Add("chUserID", this.txtAccount.Text.Trim());
    cmdQry2.Parameters.Add("strDateTime", strDateTime);
    cmdQry2.Parameters.Add("strDateTime2", strDateTime);
    cmdQry2.Parameters.Add("aIP", ip);

    try
    {
        int n = cmdQry2.ExecuteNonQuery();
        Conn.Close();
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
    }
}

如果沒有引發異常,則更新查詢在語法上是正確的,但不會更新任何行。

這只能表示where子句:

RTrim(“ chUserID”)=:chUserID

與表中的任何行都不匹配。 從this.txtAccount.Text.Trim()返回的修剪后的字符串可能與表中的值不太相同。

編輯:還要檢查Oracle命令對象的BindByName屬性是否設置為true。 否則,綁定變量可以通過添加順序而不是名稱來設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM