使用C#書寫SQLite資料庫增刪改查語句(以及插入byte[]時遇到的問題總結)

來源:互聯網
上載者:User

標籤:

在沒有使用SQLite這種輕量級的資料庫之前,只使用過Sqlserver2008進行資料的增刪改查,公司使用的是大型的ORACLE資料庫,還沒有真正的會使用它。那時候覺得資料庫很龐大,然而遇到SQLite以後,發現有這麼個迷你的小資料庫,就像女生的包包隨身攜帶的小鏡子一樣,放在哪裡都能使用。

廢話少說,SQLite提供了如何串連、關閉等資料庫操作,但真正的增、刪、改、查等語句同Sqlserver、ORACLE是一樣的。

首先,是建立SQLite資料庫檔案(寫了一個方法):

Public static void CreateDataBaseFile()

{

If(!File.Exists(dataBaseName))

{

SqliteConnection.CreateFile(dataBaseName);

}

}

注意:預設SQLite資料庫檔案建立在當前應用程式根目錄下,如果需要變更檔路徑,記得把檔案路徑一塊加上。

比如:SQLiteConnection.CreateFile(sceneName+"\\"+dataSource);

?

開啟某個資料庫,也要把檔案路徑加上,如果不需要更改,就無所謂啦….

DataSource="+Environment.CurrentDirectory+"\\"+pack.SceneName+"\\"+pack.BattleID+".db";

?

然後,增刪改查語句,以插入語句為例:

1、查詢語句

SELECT *FROM TABLE_BATTLE;

?

2、更新語句

UPDATE TABLE_BATTLE SET 欄位1=‘新值1‘;

?

3、刪除語句

DELETE FROM 表

?

4、插入語句

//string connStr = @"datasource=DEPTDATABASE";

//using (SQLiteConnection conn = new SQLiteConnection(connStr))

//{

// conn.Open();

// using (var transaction = conn.BeginTransaction())

// {

// try

// {

// SQLiteCommand cmd = conn.CreateCommand();

// cmd.Parameters.Add(cmd.CreateParameter());

// cmd.CommandText = "INSERT INTO 表名(欄位1, 欄位2, 欄位3) VALUES(@欄位1,@欄位2,@欄位3)";

// cmd.Parameters.AddWithValue("@欄位1",值1);

// cmd.Parameters.AddWithValue("@欄位2",值2);

// cmd.Parameters.AddWithValue("@欄位3",值3);

// cmd.ExecuteNonQuery();

// transaction.Commit();

// conn.Close();

// }

// catch (Exception e)

// {

// Console.WriteLine(e.Message);

// transaction.Rollback();

// }

// }

//}

?

使用這種方法插入二進位位元組資料是沒有問題的。

當我使用拼接字串格式的Sql語句就有問題了,因為使用拼接字串格式,編譯器就會認為這句是字串(string類型),所以即使裡面的資料有二進位格式,也被當做字串處理(數字格式除外),所以就會報錯。

下面這句是已經修改後的,所以正常運行。(用一個預留位置表示,當使用時再賦值)

varsql="INSERT INTO TABLE_BATTLE_HISTORY(BATTLE_ID,TIME_STAMP,OBJECT_NAME,SYNC_TYPE,

DETAIL_DATA) VALUES( ‘"+accData.battleId+"‘,‘"+accData.timeStamp+"‘,‘"+accData.objectName+"‘,‘"+accData.syncType+"‘,@DETAIL_DATA)";

?

位元據可以正常存到資料庫:

?

使用C#書寫SQLite資料庫增刪改查語句(以及插入byte[]時遇到的問題總結)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.