IDE:VS2017 community
通过NuGet获取sqlite
sqlite增、删、改、查:
using System;using System.Collections.Generic;using System.Data.sqlite;using System.linq;using System.Text;using System.Threading.Tasks;using System.windows;using System.windows.Controls;using System.windows.Data;using System.windows.documents;using System.windows.input;using System.windows.Media;using System.windows.Media.Imaging;using System.windows.Navigation;using System.windows.Shapes;namespace Hellosqlite{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { string DBPath = "Data Source=" + AppDomain.CurrentDomain.BaseDirectory + @"Hellosqlite.db"; private sqliteConnection DBConnection = null; public MainWindow() { InitializeComponent(); } private voID tbsqliteOpen_Click(object sender,RoutedEventArgs e) { DBConnection = new sqliteConnection(DBPath); DBConnection?.open(); } private voID tbsqliteCreatetable_Click(object sender,RoutedEventArgs e) { int ret = -1; string sql; bool tableExists = false; sqliteCommand cmd = new sqliteCommand(); cmd.Connection = DBConnection; /* 表是否存在 */ sql = "SELECT * FROM sqlite_master WHERE type='table' and name='persons'"; cmd.CommandText = sql; using (sqliteDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { tableExists = true; } } /* 表不存在,则创建表 */ if (!tableExists) { sql = "CREATE table IF NOT EXISTS persons(ID INTEGER PRIMARY KEY,name VARCHAR(20),age INTEGER,address VARCHAR(100),data BLOB);"; cmd.CommandText = sql; ret = cmd.ExecuteNonquery(); Console.Writeline($"创建表返回: {ret}"); } } private voID tbsqliteInsert_Click(object sender,RoutedEventArgs e) { int ret = -1; string sql; byte[] datas = new byte[] { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; sqliteCommand cmd = new sqliteCommand(); cmd.Connection = DBConnection; /* 插入一条数据 */#if DEBUG // 方式一 sql = $"INSERT INTO persons(ID,name,age,address,data) VALUES (@ID,@name,@age,@address,@data)"; cmd.CommandText = sql; cmd.Parameters.Add(new sqliteParameter("@ID",2)); cmd.Parameters.Add(new sqliteParameter("@name","王五")); cmd.Parameters.Add(new sqliteParameter("@age",12)); cmd.Parameters.Add(new sqliteParameter("@address","中国北京")); cmd.Parameters.Add(new sqliteParameter("@data",datas));#else // 方式二 sql = string.Format($"INSERT INTO persons(ID,address) VALUES ('{1000}','{"张三"}','{20}','{"中国-广东深圳坂田"}')"); cmd.CommandText = sql;#endif ret = cmd.ExecuteNonquery(); Console.Writeline($"{ret}行被插入!"); } private voID tbsqliteDelete_Click(object sender,RoutedEventArgs e) { int ret = -1; string sql; sqliteCommand cmd = new sqliteCommand(); cmd.Connection = DBConnection; /* 删除数据 */ sql = "DELETE FROM persons"; cmd.CommandText = sql; ret = cmd.ExecuteNonquery(); Console.Writeline($"{ret}行被删除!"); } private voID tbsqliteUpdate_Click(object sender,RoutedEventArgs e) { int ret = -1; string sql; sqliteCommand cmd = new sqliteCommand(); cmd.Connection = DBConnection; /* 更新数据 */ sql = "UPDATE persons SET age=21 WHERE ID=2"; cmd.CommandText = sql; ret = cmd.ExecuteNonquery(); Console.Writeline($"{ret}行被修改!"); } private voID tbsqlitequery_Click(object sender,RoutedEventArgs e) { string sql; sqliteCommand cmd = new sqliteCommand(); cmd.Connection = DBConnection; /* 查询数据库 */ sql = "select * from persons"; cmd.CommandText = sql; using (sqliteDataReader reader = cmd.ExecuteReader()) { Console.Writeline($"Depth: {reader.Depth}"); Console.Writeline($"HasRows: {reader.HasRows}"); Console.Writeline($"Column count: {reader.FIEldCount}"); Console.Writeline($"RecordsAffected: {reader.RecordsAffected}"); Console.Writeline($"StepCount: {reader.StepCount}"); Console.Writeline($"VisibleFIEldCount: {reader.VisibleFIEldCount}"); Console.Writeline($"*************************************************"); while (reader.Read()) { Console.Writeline($"ID: {reader.GetInt32(0)} {Environment.Newline}" + $"name: {reader.GetString(1)} {Environment.Newline}" + $"Age: {reader.GetInt32(2)} {Environment.Newline}" + $"Address: {reader.GetString(3)} {Environment.Newline}"); long size = reader.GetStream(4).Length;// 获取第4列长度 byte[] d = new byte[size]; long len = reader.GetBytes(4,d,(int)size); Console.Writeline(StringHelper.Bytes2HexString(d)); Console.Writeline($"======================================================================="); } } } private voID tbsqliteClose_Click(object sender,RoutedEventArgs e) { DBConnection?.Close(); } }}
byte数组转十六进制字符串
using System;using System.Collections.Generic;using System.linq;using System.Text;using System.Threading.Tasks;namespace Hellosqlite{ public class StringHelper { public static string Bytes2HexString(byte[] bytes) { string hexString = string.Empty; if (null != bytes) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { sb.Append(bytes[i].ToString("X2") + " "); } hexString = sb.ToString(); } return hexString; } }}总结
以上是内存溢出为你收集整理的WPF *** 作SQLite全部内容,希望文章能够帮你解决WPF *** 作SQLite所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)