2017-10-17 115 views
0

停止我在SQLite數據庫表格包含列「ID」 當我按下一個按鈕C# - SQLite中自動遞增在10號

con.Open(); 
     SQLiteCommand cmd = new SQLiteCommand("Select MAX(id)+1 FROM Data", con); 

     object obj = cmd.ExecuteScalar(); 
     int Amount = (obj != null && obj != DBNull.Value) ? Convert.ToInt32(obj) : 1; 

     con.Close(); 

     tId.Text = Convert.ToString(Amount); 

一切,我用這個代碼來自動增量此列是罰款,直至有10個記錄表中,然後將其拒絕取回身份證號碼「11」

+1

你爲什麼不定義ID列有[AUTOINCREMENT](http://www.tutorialspoint.com/sqlite/sqlite_using_autoincrement.htm)標誌並忘記它? – Steve

+0

「拒絕」是什麼意思?怎麼了? –

+0

當有10條記錄,我嘗試按下按鈕時,它已經存在的ID號「10」@MichaelButscher –

回答

0

你可以嘗試一個這個更新的代碼:

con.Open(); 
SQLiteCommand cmd = new SQLiteCommand("Select MAX(cast(id as int))+1 FROM Data", con); 

object obj = cmd.ExecuteScalar(); 
int Amount = (obj != null && obj != DBNull.Value) ? Convert.ToInt32(obj) : 1; 

con.Close(); 

tId.Text = Convert.ToString(Amount); 
+0

工作過,謝謝。 –

+0

這只是你的問題的解決方案,而不是好的!你應該真的把'id'列設置爲自動增加,並讓數據庫處理它。如果你需要在其他任何地方使用varchar,那麼你可以很容易地把這個列轉換爲int。 –