加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Sqlite3 .net操作以及编码示例

发布时间:2020-12-12 23:38:03 所属栏目:百科 来源:网络整理
导读:Sqlite3内部采用UTF8存储,但是为转成GB2312就必须调用编码函数,太麻烦了,于是今天琢磨出一种让sqlite3内部存储汉字采用 GB2312的方法,将字段设为BLOB,然后保存汉字的GB2312编码的字节数组就OK了。但是把词库的所有字段从TEXT转换成BLOB,结果查询 时用whe
Sqlite3内部采用UTF8存储,但是为转成GB2312就必须调用编码函数,太麻烦了,于是今天琢磨出一种让sqlite3内部存储汉字采用 GB2312的方法,将字段设为BLOB,然后保存汉字的GB2312编码的字节数组就OK了。但是把词库的所有字段从TEXT转换成BLOB,结果查询 时用where word = ’hello’竟然无法查询出结果,随手改成where word like ’hello’竟然可以,估计是BLOB无法用"="查询。


# using System;

# using System.Text;

# using System.Data;

# using Finisar.SQLite;

#

# namespace SqliteConvert

# {

# /// <summary>

# /// Class1 的摘要说明。

# /// </summary>

# class Class1

# {

# /// <summary>

# /// 应用程序的主入口点。

# /// </summary>

# [STAThread]

# static void Main( string[] args)

# {

# //

# // TODO: 在此处添加代码以启动应用程序

# //

#

#

# //打开以前的库

# SQLiteConnection sqliteConn = new SQLiteConnection( @"Data Source=d:projectDrEye.db;New=False;Compress=True;Version=3;");

# sqliteConn.Open();

# SQLiteDataAdapter sqliteDa = new SQLiteDataAdapter( "select * from DrEye",sqliteConn);

# DataSet sqliteDs = new DataSet();

# sqliteDa.Fill(sqliteDs);

#

#

# //创建新库

# SQLiteConnection sqliteConnNew = new SQLiteConnection( @"Data Source=d:projectDrEye.new1.db;New=True;Compress=True;Version=3");

# sqliteConnNew.Open();

#

# //建表

# SQLiteCommand sqliteCmdNew = sqliteConnNew.CreateCommand();

# sqliteCmdNew.CommandText = "CREATE table DrEye (word TEXT Primary Key,explanation BLOB,InflectedForm BLOB)";

# sqliteCmdNew.ExecuteNonQuery();

#

# //插入数据

# SQLiteDataAdapter sqliteDaNew = new SQLiteDataAdapter( "select * from DrEye",sqliteConnNew);

# SQLiteCommandBuilder sqliteCbNew = new SQLiteCommandBuilder(sqliteDaNew);

#

# DataSet sqliteDsNew = new DataSet();

# sqliteDaNew.Fill(sqliteDsNew);

#

# Console.WriteLine(sqliteDs.Tables[0].Rows.Count);

# Console.WriteLine(sqliteDsNew.Tables[0].Rows.Count);

#

# foreach(DataRow dr in sqliteDs.Tables[0].Rows)

# {

#

#

# DataRow sqliteDrNew = sqliteDsNew.Tables[0].NewRow();

# sqliteDrNew[0] = dr[0];

# sqliteDrNew[1] = EncodingConvert(dr[1].ToString());

# if (dr[2].ToString() != "")

# {

# sqliteDrNew[2] = EncodingConvert(dr[2].ToString());

# }

# sqliteDsNew.Tables[0].Rows.Add(sqliteDrNew);

# break;

# }

# sqliteDaNew.Update(sqliteDsNew);

#

#

# Console.WriteLine( "Game over!");

# Console.ReadLine();

# }

#

# //将字符串转换成字节

# static byte[] EncodingConvert( string utf8String)

# {

#

# byte[] ansiCode;

# ansiCode = Encoding.Default.GetBytes(utf8String);

# return ansiCode;

# }

# }

# }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读