[英]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.