Sqlite 自增长id 我这边准备用Sqlite写个小程序,想知道怎样通过Ado.net获取插入新记录的自增长Id。求高人指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最简单的办法就是select max(id) select max(rowid) from yourtable或倒序倒序排列id,取第1条 参考一下下 private void button1_Click(object sender, EventArgs e) { try { SQLiteConnection conn = new SQLiteConnection("data Source="+@(c:\test.db)); conn.SetPassword("1234567890"); conn.Open(); SQLiteCommand cmd = conn.CreateCommand(); string tabneName="table"; cmd.CommandText = "select * max(id) from " + tableName; SQLiteDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { this.label1.Text = "id:" + reader.GetValue(0).ToString();; reader.Close(); } } catch(exception e) { } finally { conn.Close(); } } 我擦SQL上面多了个*cmd.CommandText = "select max(id) from " + tableName; select max(rowid) from yourtable这样 只是max的话,并发时是否安全? //插入之后取新ID,中间用分号断句var sql = "INSERT INTO TableName ...;" + "SELECT LAST_INSERT_ROWID() FROM TableName"; 首先Sqlite引擎要是Sqlite3,然后Id列类型必须是INTEGER,PRIMARY KEY,然后Autoincrement。这样就可以获取INSERT INTO ......; SELECT LAST_INSERT_ROWID() AS [NewId];就类似于SQL Server的SELECT @@IDENTITY 要并发安全很难,你可以考虑用GUID代替自增长ID,.NET产生的GUID不可能重复。 请问取第一条数据的SQL语句怎么写?别告诉我用select top 1 * from yourtable 用过了查不到。 如果将一个字段定义成自增长字段,那么插入SQL是自增长字段就省略不写。例如表定义:create table user(" +"userid integer primary key Autoincrement," +"username text null," +"password text null," +"lastlogindate text null)表插入SQL语句:insert into user(username,password,lastlogindate) values ('user','pwd','2010/10/10');以上方法已经得到验证。 c#调用web service时出错,求助! 怎样在DataGridView中选中新增加的行? 关于Graphics 求一款画图无锯齿或锯齿较不明显的画图软件 谁能给个AxWebBrowser的控件,最好能有个简单的Demo,谢谢. ADO.NET 的两个问题,50分求解 用到水晶报表的软件不能运行的问题 Socket异步通信问题 有关图像识别技术的问题 有哪位高手愿意加我QQ好友? 判断问题 实现webbrowser的基本功能
或
倒序倒序排列id,取第1条
{
try
{
SQLiteConnection conn = new SQLiteConnection("data Source="+@(c:\test.db));
conn.SetPassword("1234567890");
conn.Open();
SQLiteCommand cmd = conn.CreateCommand();
string tabneName="table";
cmd.CommandText = "select * max(id) from " + tableName;
SQLiteDataReader reader = cmd.ExecuteReader(); if (reader.HasRows)
{
this.label1.Text = "id:" + reader.GetValue(0).ToString();;
reader.Close();
}
}
catch(exception e)
{ }
finally
{
conn.Close();
}
}
//插入之后取新ID,中间用分号断句
var sql = "INSERT INTO TableName ...;"
+ "SELECT LAST_INSERT_ROWID() FROM TableName";
INSERT INTO ......; SELECT LAST_INSERT_ROWID() AS [NewId];
就类似于SQL Server的SELECT @@IDENTITY
请问取第一条数据的SQL语句怎么写?
别告诉我用select top 1 * from yourtable 用过了查不到。
例如表定义:
create table user(" +
"userid integer primary key Autoincrement," +
"username text null," +
"password text null," +
"lastlogindate text null)
表插入SQL语句:
insert into user(username,password,lastlogindate) values ('user','pwd','2010/10/10');
以上方法已经得到验证。