2012-11-02 87 views
0

我正在使用Visual C#2010 express窗體窗體應用程序& Mysql for DB。 我想從數據庫中獲得一個值(當前學生數),並將其增加1並更新該值。爲此,我用下面的代碼,但我發現在‘字段列表’被稱爲「未知列‘X’的錯誤。使用存儲在變量中的值更新數據庫

connection.Open(); 
    MySqlCommand cmd1 = new MySqlCommand("SELECT NoOfStudents FROM batch", connection); 
       MySqlDataReader dr = null; 
       dr = cmd1.ExecuteReader(); 
       int x; 
       while (dr.Read()) 
       { 
       x = Convert.ToInt32(dr[0]); 
       x = x + 1; 
       } 
       dr.Close(); 
       MySqlCommand cmd2 = new MySqlCommand("UPDATE batch SET NoOfStudents= x", connection); 
       cmd2.ExecuteNonQuery(); 
       connection.Close(); 

回答

0

試試這個

string sql=string.Format("UPDATE batch SET NoOfStudents= {0}",x); 
MySqlCommand cmd2 = new MySqlCommand(sql, connection); 

x是你的程序中聲明的一個變量,Mysql不知道任何關於它的東西,這只是一個字符串,它的內容被編譯器忽略了

+0

還是它顯示一個稱爲「使用未分配的局部變量x」的錯誤。我錯誤地分配了X ??? – user1724557

+0

@ user1724557你應該初始化x的某些東西,例如:int x = 0;然後if(x!= 0)然後執行查詢 –

1

更改爲

MySqlCommand cmd2 = new MySqlCommand(string.Format("UPDATE batch SET NoOfStudents= {0}",x), connection);