2011-08-02 46 views
0

對c#和db編程來說很新穎。我接管了別人的代碼。我在嘗試更新數據庫時遇到錯誤。下面的代碼:獲取數據庫錯誤:標準表達式中的數據類型不匹配c#

private void EnableEvent(int eventID) 
    { 


     OleDbCommand oleCMD = new OleDbCommand(); 
     oleCMD.Connection = Database.SqlConn(); 
     OleDbTransaction oleTrans = oleCMD.Connection.BeginTransaction(); 
     oleCMD.Transaction = oleTrans; 

     try 
     { 
      StringBuilder sql = new StringBuilder(); 
      sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID='{0}'", eventID); 

      oleCMD.CommandText = sql.ToString(); 
      // insert the header 
      oleCMD.ExecuteNonQuery(); 
      oleTrans.Commit(); 
     } 
     catch(Exception e) 
     { 
      MessageBox.Show(e.Message, "Database Error",MessageBoxButtons.OK,MessageBoxIcon.Error); 
     } 
     finally 
     { 
      oleCMD.Connection.Close(); 
      oleCMD.Dispose(); 
     } 
    } 
+0

你能發佈完整的錯誤字符串嗎? – raym0nd

+0

如何獲取更多的錯誤字符串? e.message是「數據類型在標準表達式中不匹配」 – Matt

回答

0

編輯:

疑難雜症現在...格式化您的查詢像的下方,它肯定會工作

 StringBuilder sql = new StringBuilder(); 
     sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID = {0}", eventID); 

隨着Numeric田佑不應該把撇號圍繞價值。這是問題所在。

+0

eventID是一個i​​nt ...我再次檢查。 – Matt

+0

您是否嘗試過我在我的答案中提出的查詢格式...只需引用'set isActive ='1''並嘗試一次。應該工作正常。 – Rahul

+0

我做到了。沒有運氣。我將在我的MySQL Workbench中使用什麼命令手動嘗試它?我知道如何從數據庫運行SELECT查詢。但是,我如何運行UPDATE?這樣我可以看到數據庫是否會更新。 – Matt

0

試試這個!

private void EnableEvent(int eventID) 
{ 
    OleDbConnection myConn = new OleDbConnection(myConnString); 
    myConn.Open(); 

    OleDbCommand myCommand = myConn.CreateCommand(); 
    OleDbTransaction myTrans; 
    // Start a local transaction 
    myTrans = myConn.BeginTransaction(); 
    // Assign transaction object for a pending local transaction 
    myCommand.Connection = myConn; 
    myCommand.Transaction = myTrans; 

    try 
    { 
     StringBuilder sql = new StringBuilder(); 
     sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID='{0}'", eventID); 

     myCommand.CommandText = sql.ToString(); 
     // insert the header 
     myCommand.ExecuteNonQuery(); 
     myTrans.Commit(); 
    } 
    catch(Exception e) 
    { 
     MessageBox.Show(e.Message, "Database Error",MessageBoxButtons.OK,MessageBoxIcon.Error); 
    } 
    finally 
    { 
     myCommand.Connection.Close(); 
     myCommand.Dispose(); 
    } 
} 

讓我知道這是否有幫助!

相關問題