2017-10-17 99 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。 –