WPF *** 作SQLite

WPF *** 作SQLite,第1张

概述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

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1163497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存