2012-12-03 72 views
-1

我在mysql中有一個sql命令有問題。我有一個asp.net applcation並使用mysql數據庫作爲數據庫。我想創建一個類,可以插入,更新,刪除和選擇數據庫中的記錄。我遇到了更新命令的問題。在phpMyAdmin它的工作原理,但在我的課不是:/爲什麼我的Update sql命令不起作用?

這裏是我的代碼

public void UpdateRecord(string title, string firstname, string lastname, string company, 
           string timefrom, string timeto) 
     { 
      connection = new MySqlConnection(); 

      try 
      { 
       MySqlCommand command = connection.CreateCommand(); 

       //for testing 
       string sql = "UPDATE 'tb_gast' SET FIRSTNAME='test' WHERE ID=270"; 

       command.CommandText = sql; 

       connection.Open(); 

       command.ExecuteNonQuery(); 

      } 
      catch (Exception) 
      { 

      } 
      finally 
      { 
       connection.Close(); 
      } 
     } 

此命令的工作在phpMyAdmin

UPDATE `tb_gast` 
SET 
FIRSTNAME='uu', 
LASTNAME='uu', 
COMPANY='uu' 
WHERE ID=270 
+1

任何錯誤信息? –

+0

我不確定(關於MySQL),但嘗試刪除表名稱周圍的單引號,例如。 UPDATE tb_gast SET ... – LittleSweetSeas

+1

如果你刪除了空的'Catch(Exception){}'塊並讓錯誤實際得到報告,那麼所有「不起作用」的註釋將被解決得更快。然後,當你解決了這個問題時......不要重新添加它。因爲,下一次出現問題時,您還想知道實際的錯誤是什麼,而不是僅僅讓這個功能失敗。 –

回答

1

您正在使用周圍的表名的單引號,而不是反引號。你的問題讓我們更深層:
倒引號可以使用組合鍵ALT+096

UPDATE `tb_gast` SET FIRSTNAME = 'test' WHERE ID=270 

編輯排版。
注意到你聲明瞭一個MySqlConnection並且在沒有任何連接字符串的情況下初始化它。
如果這是你真正的代碼也難怪,這是行不通的

這是你的代碼應該如何

 using(connection = new MySqlConnection(GetConnectionString()) 
     { 
      connection.Open(); 
      using(MySqlCommand command = connection.CreateCommand(); 
      { 
       //for testing 
       string sql = "UPDATE `tb_gast` SET FIRSTNAME='test' WHERE ID=270"; 
       command.CommandText = sql; 
       command.ExecuteNonQuery(); 
      } 
     } 

其中GetConnectionString()應該是有的,從一些永久返回連接字符串的方法存儲就像一個配置文件

2

從表名'tb_gast'刪除引號。相反的:

UPDATE 'tb_gast' SET FIRSTNAME='test' WHERE ID=270 

試試這個:

UPDATE tb_gast SET FIRSTNAME = 'test' WHERE ID=270 
+0

這個不工作,也:(:(我不明白問題的句法必須是正確的:/ – Tarasov

+0

@Tarasov你有什麼錯誤,請發貼吧 –

+0

我沒有得到錯誤...但我看到在數據庫中不起作用:/ – Tarasov

1

試試這個...

無效UpdateRecord(字符串標題,串名字,姓氏字符串,字符串公司, 小號tring timefrom,string time to) { connection = new MySqlConnection();

 try 
     { 
      string sql = "UPDATE tb_gast SET FIRSTNAME='test' WHERE ID=270"; 
      MySqlCommand command = new MySqlCommand(sql, connection); 
      connection.Open(); 

      command.ExecuteNonQuery(); 

     } 
     catch (Exception) 
     { 

     } 
     finally 
     { 
      connection.Close(); 
     } 
    } 
相關問題