欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQLite數(shù)據(jù)庫(kù)中如何獲取新插入數(shù)據(jù)的自增長(zhǎng)ID

 更新時(shí)間:2024年04月15日 11:39:26   作者:keitsi  
SQLite數(shù)據(jù)庫(kù)中有一有列名為ID的自增列,項(xiàng)目需求要在向數(shù)據(jù)庫(kù)在插入新數(shù)據(jù)的同時(shí)返回新插入數(shù)據(jù)行的ID,這篇文章主要介紹了SQLite數(shù)據(jù)庫(kù)中如何獲取新插入數(shù)據(jù)的自增長(zhǎng)ID,需要的朋友可以參考下

SQLite 簡(jiǎn)介

本教程幫助您了解什么是 SQLite,它與 SQL 之間的不同,為什么需要它,以及它的應(yīng)用程序數(shù)據(jù)庫(kù)處理方式。

SQLite是一個(gè)軟件庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫(kù)引擎。SQLite是一個(gè)增長(zhǎng)最快的數(shù)據(jù)庫(kù)引擎,這是在普及方面的增長(zhǎng),與它的尺寸大小無(wú)關(guān)。SQLite 源代碼不受版權(quán)限制。

什么是 SQLite?

SQLite是一個(gè)進(jìn)程內(nèi)的庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫(kù)引擎。它是一個(gè)零配置的數(shù)據(jù)庫(kù),這意味著與其他數(shù)據(jù)庫(kù)不一樣,您不需要在系統(tǒng)中配置。

就像其他數(shù)據(jù)庫(kù),SQLite 引擎不是一個(gè)獨(dú)立的進(jìn)程,可以按應(yīng)用程序需求進(jìn)行靜態(tài)或動(dòng)態(tài)連接。SQLite 直接訪問其存儲(chǔ)文件。

SQLite數(shù)據(jù)庫(kù)中有一有列名為ID的自增列,項(xiàng)目需求要在向數(shù)據(jù)庫(kù)在插入新數(shù)據(jù)的同時(shí)返回新插入數(shù)據(jù)行的ID。

我這里用事務(wù),把插入和查詢語(yǔ)句通過ExecuteReader一起提交,返回DbDataReader。

接下來(lái)介紹SQLite數(shù)據(jù)庫(kù)中如何獲取新插入數(shù)據(jù)的自增長(zhǎng)ID,代碼如下所示:

實(shí)現(xiàn)代碼

public bool Insert(string topic, string key, string value, out int id)
{
    DbProviderFactory factory = SQLiteFactory.Instance;
    using (DbConnection conn = factory.CreateConnection())
    {
        conn.ConnectionString = _connectionString;
        conn.Open();
        DbCommand cmdInsert = conn.CreateCommand();
        cmdInsert.Parameters.Add(cmdInsert.CreateParameter());
        cmdInsert.Parameters.Add(cmdInsert.CreateParameter());
        cmdInsert.Parameters.Add(cmdInsert.CreateParameter());
        DbTransaction trans = conn.BeginTransaction();
        try
        {
            cmdInsert.CommandText = "INSERT INTO [{0}] ([Topic],[Key],[Value]) VALUES (?,?,?);SELECT LAST_INSERT_ROWID() FROM [{0}]";
            cmdInsert.CommandText = string.Format(cmdInsert.CommandText, _messageTableName);
            cmdInsert.Parameters[0].Value = topic;
            cmdInsert.Parameters[1].Value = key;
            cmdInsert.Parameters[2].Value = value;
            DbDataReader reader = cmdInsert.ExecuteReader();
            trans.Commit();
            if (reader.Read())
            {
                id = int.Parse(reader[0].ToString());
                reader.Close();
                return true;
            }
            else
            {
                SAEC_Log4net.Log.Error("insert message to db fail");
                id = 0;
                return false;
            }
        }
        catch (Exception e)
        {
            trans.Rollback();
            SAEC_Log4net.Log.Error(e.ToString());
            id = 0;
            return false;
        }
    }
}

到此這篇關(guān)于SQLite數(shù)據(jù)庫(kù)中獲取新插入數(shù)據(jù)的自增長(zhǎng)ID的文章就介紹到這了,更多相關(guān)SQLite新插入數(shù)據(jù)自增長(zhǎng)ID內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • hive中的幾種join到底有什么區(qū)別

    hive中的幾種join到底有什么區(qū)別

    hive處理表關(guān)聯(lián)時(shí)由于數(shù)據(jù)量以及數(shù)據(jù)傾斜等問題會(huì)導(dǎo)致計(jì)算性能差甚至任務(wù)失敗,下面這篇文章主要給大家介紹了關(guān)于hive中幾種join到底有什么區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • JetBrains DataGrip安裝和使用的詳細(xì)教程

    JetBrains DataGrip安裝和使用的詳細(xì)教程

    日常開發(fā)中少不了各種可視化數(shù)據(jù)庫(kù)管理工具。本文介紹另一個(gè)十分好用且強(qiáng)大的工具:DataGrip。具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-09-09
  • SQL之Join的使用詳解

    SQL之Join的使用詳解

    關(guān)于sql語(yǔ)句中的連接(join)關(guān)鍵字,是較為常用而又不太容易理解的關(guān)鍵字,下面就為大家介紹一下相關(guān)資料,需要的朋友可以參考下
    2020-09-09
  • 關(guān)于ADOX的相關(guān)知識(shí)

    關(guān)于ADOX的相關(guān)知識(shí)

    關(guān)于ADOX的相關(guān)知識(shí)...
    2006-12-12
  • 5分鐘快速了解數(shù)據(jù)庫(kù)死鎖產(chǎn)生的場(chǎng)景和解決方法

    5分鐘快速了解數(shù)據(jù)庫(kù)死鎖產(chǎn)生的場(chǎng)景和解決方法

    這篇文章主要給大家介紹了關(guān)于如何通過5分鐘快速理解數(shù)據(jù)庫(kù)死鎖的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 數(shù)據(jù)庫(kù)連接池Druid與Hikari對(duì)比詳解

    數(shù)據(jù)庫(kù)連接池Druid與Hikari對(duì)比詳解

    這篇文章主要為大家介紹了數(shù)據(jù)庫(kù)連接池Druid與Hikari對(duì)比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • SQL的各種連接Join案例詳解

    SQL的各種連接Join案例詳解

    SQL JOIN 子句用于把來(lái)自兩個(gè)或多個(gè)表的行結(jié)合起來(lái),基于這些表之間的共同字段,下面就為大家分享一下
    2020-09-09
  • 由拖庫(kù)攻擊談口令字段的加密策略(數(shù)據(jù)庫(kù)加密)

    由拖庫(kù)攻擊談口令字段的加密策略(數(shù)據(jù)庫(kù)加密)

    我不得不慘痛地寫在前面的是,這是一個(gè)安全崩盤的時(shí)代。過去一年,已經(jīng)證實(shí)的遭遇入侵、并導(dǎo)致關(guān)鍵數(shù)據(jù)被竊或者被泄露的公司,包括索尼、世嘉這樣的大型游戲設(shè)備廠商;包括花旗銀行這樣的金融機(jī)構(gòu),也包括了RSA這樣的安全廠商
    2012-01-01
  • 以前架征途時(shí)的合區(qū)的SQL語(yǔ)句代碼備份

    以前架征途時(shí)的合區(qū)的SQL語(yǔ)句代碼備份

    本來(lái)以為資料都是丟了的,今天整理移動(dòng)硬盤時(shí)發(fā)現(xiàn)found.000這個(gè)目錄超大,進(jìn)去一看,我的媽呀,資料都在這里了,這下可把我樂壞了,我趕緊把一些有用的都發(fā)上來(lái)先
    2008-08-08
  • datagrip 修改或更新不能自動(dòng)提交的問題

    datagrip 修改或更新不能自動(dòng)提交的問題

    這篇文章主要介紹了datagrip 修改或更新不能自動(dòng)提交的問題,本文給大家分享DataGrip激活碼,需要的朋友可以參考下
    2020-09-09

最新評(píng)論