C# ASP.NET C连接到Oracle数据库以更新数据故障

C# ASP.NET C连接到Oracle数据库以更新数据故障,c#,asp.net,oracle,q,odp.net,C#,Asp.net,Oracle,Q,Odp.net,我的项目是ASP.NET WebForm和C。我想更新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, d

我的项目是ASP.NET WebForm和C。我想更新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条款:

RTrimchUserID=:chUserID

不匹配表中的任何行。可能从this.txtcount.Text.Trim返回的修剪字符串与表中的值不完全相同


编辑:还要检查Oracle命令对象的BindByName属性是否设置为true。否则,绑定变量可能会按添加顺序而不是按名称设置

您确定没有出现任何异常吗?您确定必须引用标识符表名、列名吗?这在甲骨文中很少见,也不例外。