我这边准备用Sqlite写个小程序,想知道怎样通过Ado.net获取插入新记录的自增长Id。
求高人指点

解决方案 »

  1.   

    最简单的办法就是select max(id)
      

  2.   

    select max(rowid) from yourtable

    倒序倒序排列id,取第1条
      

  3.   

    参考一下下       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(); 
                   }
                              
            }
      

  4.   

    我擦SQL上面多了个*cmd.CommandText = "select max(id) from " + tableName;
      

  5.   

    select max(rowid) from yourtable这样
      

  6.   

    只是max的话,并发时是否安全?
      

  7.   


    //插入之后取新ID,中间用分号断句
    var sql = "INSERT INTO TableName ...;"
              + "SELECT LAST_INSERT_ROWID() FROM TableName";
      

  8.   

    首先Sqlite引擎要是Sqlite3,然后Id列类型必须是INTEGER,PRIMARY KEY,然后Autoincrement。这样就可以获取
    INSERT INTO ......; SELECT LAST_INSERT_ROWID() AS [NewId];
    就类似于SQL Server的SELECT @@IDENTITY
      

  9.   

    要并发安全很难,你可以考虑用GUID代替自增长ID,.NET产生的GUID不可能重复。
      

  10.   


    请问取第一条数据的SQL语句怎么写?
    别告诉我用select top 1 * from yourtable  用过了查不到。
      

  11.   

    如果将一个字段定义成自增长字段,那么插入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');
    以上方法已经得到验证。