威尼斯人线上娱乐

NET中自适应32人,工商业银行行贵金属市场价格查看小工具

11 4月 , 2019  

正文属于原创,转发请申明出处,多谢!

正文属于原创,转载请注解出处,感激!

       
假若一个.NET应用要自适应3二人/60个人系统,只须要在项目标“指标平台”设置为“Any
CPU”。不过假诺运用中动用了SQLite,情状就不一致了。

–首发于果壳网, 转发请保留此链接  博客原版的书文地址

一、开发环境

壹、开发环境

 

本文运转环境: Win7 X6④, VS2010

操作系统:Windows 拾 X6肆

操作系统:Windows 十 X6四

 
 SQLite的.NET开发包来自是System.Data.SQLite,完结包容ADO.NET接口,也提供了Linq和Entity
Framework
陆完成。但那不主要,首要的是System.Data.SQLite是由两片段代码组成的,1部分是非托管的C++代码完成,1部分是托管代码与.NET
框架接口。由于非托管代码不能够创设成“Any
CPU”的,所以System.Data.SQLite的下载页面的每一种包都以按三十二人或6三人系统开展了界其他。

NET中自适应32人,工商业银行行贵金属市场价格查看小工具。1. SQLite 的优点:

    SQLite 是1款轻型数据库,开发包只有十几M, 相对于 MSSQL 多少个 G
的体积来说简直是小 Case, 而且在打包成的软件里只需求添加相关的 DLL
就能够在任何的处理器运转,那或多或少来说比 Access 数据库还要来得便宜。

  SQLite固然十分的小巧,可是帮助的SQL语句不会太未有于其它开源数据库。

   
更加多详情参见百科:SQLite

支付环境:VS201伍

付出环境:VS20一伍

 

二. 开发包下载

    SQLite
官方下载网站

   
本文所用开发包:sqlite-netFx40-setup-bundle-x86-2010-1.0.93.0.exe 

编制程序语言:C#

编制程序语言:C#

  谈起此地,顺便说一下,瞧着System.Data.SQLite的下载页面就头昏。即使在下载页面1开首就花了大气的字数来证实怎么样抉择下载,不过推断没多少人会把它看完,所以那里还是简单介绍一下。

3. VS 2010 使用 SQLite

.NET版本:.NET Framework 4.0

.NET版本:.NET Framework 4.0

 

3.1 安装 SQLite

     3.1.一. 安装部件有1个挑选:Full installation(完全安装), Compact
installation(精简安装), Custom installation(自定义安装), 本文所选为 Full
installation

     三.一.二 暗许为不勾选 Instatll the designer components for Visual
Studio 20十, 能够把这一个选上

威尼斯人线上娱乐 1

 

指标平台:X八陆

目的平台:X8陆


   一)
首先是按类型分为安装包、非静态连接的二进制包和静态连接的2进制包。安装包会安装相关的动态库到系统内,并注册到GAC(Global
Assembly
Cache);二种二进制包的区分在于非托管部分的连日形式各异,非静态连接的二进制包在动用时需求VC运营时库的支撑。须要专注的是:倘使急需在
Visual Studio中年老年是SQLite数据库,就亟须挑选安妥的安装包实行设置。

 

  比如,要在Visual Studio
20第10中学一连SQLite,应该下载“sqlite-netFx40-setup-bundle-x86-200九-1.0.90.0.exe”,这在下载包的表明中有肯定石籀文字表明。

威尼斯人线上娱乐 2

 

[下载包的表达中有门到户说的草书字表达]

 

  安装之后就足以在Visual Studio 20第10中学年老年是SQLite了:

威尼斯人线上娱乐 3

 

[在Visual Studio中连接SQLite]

 

   2) 每一种项目都按.NET版本分成了多少小组,近年来从.NET 二.0 SP2到.NET
四.5.一,一共补助多少个版本的.NET
Framework。每一个.NET版本又分为三十几个人和六10人两组。选择34人依然63个人是基于使用系统来支配的。比如开发的时候是陆拾2人系统而宣布后运维在30个人系统上,就供给在开发时行使陆拾四人System.Data.SQLite.dll,而在公布时用三拾1人的
System.Data.SQLite.dll替换(看起来很劳累的楷模请看后面包车型大巴消除办法)。

 

   3)
在每一种.NET版本分组中都有1个文件包,叁个富含“bundle”字样,另多少个并未。个中饱含“bundle”字样的代表动态库是按混合形式编写翻译的,在
使用的时候只要求System.Data.SQLite.dll就足以了,而不带“bundle”的则是将非托管部分和托管部分各自编写翻译,System.Data.SQLite.dll无法独立行使,还亟需有SQLite.Interop.dll才能选取。


 

3.1.二 先在该地创立3个空手文件,扩充名称叫*.db,

         添加 SQLite 连接: Server Explorer -> Data Connections ->
Add Connection …

         Data Source 为 SQLite Database file

       
 由于表结构相似是三回性创作,所以添加数据库后采纳视图直接建立数据表结构,不必选拔代码创立

威尼斯人线上娱乐 4

威尼斯人线上娱乐 5

威尼斯人线上娱乐 6

二、前言

二、前言

  言归正传,假如要选取“Any
CPU”的System.Data.SQLite.dll,就非得选用不带“bundle”字样,即非混合编写翻译的贰进制包。

3.1.3 添加 SQLite 引用

        Solution Explorer -> Reference -> Add Reference…       
找到SQLite 安装路径添加 System.Data.SQLite.dll 引用 

        该类库包罗SQLiteConnection , SQLiteCommand,SQLiteDataAdapter
等三番五次操作数据库必要的类

事先使用的是软件的Access来创设基于本地的数据库软件,发以往动用进程中,发现Access相比耗内部存款和储蓄器,运维速度比SQLite稍微慢,别的三个最重视的是Access加密的文件简单被破解,因而,今后转载使用SQLite来代替Access。

前面运用的是软件的Access来创建基于本地的数据库软件,发今后使用进度中,发现Access比较耗内部存款和储蓄器,运维速度比SQLite稍微慢,别的三个最要害的是Access加密的文本不难被破解,因而,未来转载使用SQLite来代表Access。

 

三.1.4 新建 SQLiteHelper 类,首若是db 连接的着力音讯,如路径,以及部分数据表的基本操作方法(依据个人要求):

    public class SQLiteHelper
    {
        public SQLiteConnection Connection
        {
            get
            {
                if (_cn == null)
                {
                    Settings settings = new Settings();
                    string connection = settings.Connection.ToString();
                    _cn = new SQLiteConnection(connection);
                }
                return _cn;
            }
        }

        private SQLiteConnection _cn = null;

        public DataTable GetDataTable(string query)
        {
            DataTable dt = new DataTable();
            try
            {
                Connection.Open();
                GetAdapter(query).Fill(dt);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                Connection.Close();
            }
            return dt;
        }

        public bool Update(string tableName, DataTable dt)
        {
            try
            {
                Connection.Open();
                string tableStructureQuery = string.Format("SELECT * FROM {0} WHERE 1 = 0", tableName);
                SQLiteDataAdapter da = GetAdapter(tableStructureQuery);
                da.Update(dt);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                Connection.Close();
            }
            return true;
        }

        public SQLiteDataAdapter GetAdapter(string query)
        {
            SQLiteCommand selectCommand = new SQLiteCommand(query, Connection);
            SQLiteDataAdapter adapter = new SQLiteDataAdapter(selectCommand);
            SQLiteCommandBuilder sb = new SQLiteCommandBuilder(adapter);
            return adapter;
        }

        public bool ExecuteScript(string query)
        {
            try
            {
                SQLiteCommand selectCommand = new SQLiteCommand(query, Connection);
                Connection.Open();
                selectCommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
            finally
            {
                Connection.Close();
            }

            return true;
        }
    }

    public static class DataViewHelper
    {
        public static DataView Clone(this DataView source, string filter)
        {
            if (source == null)
            {
                throw new ApplicationException("Source cannot be null");
            }

            DataView newView = new DataView(source.Table);

            string viewfilter = source.RowFilter;

            List<string> filters = new List<string>();
            if (!string.IsNullOrEmpty(viewfilter))
                filters.Add(string.Format("({0})", viewfilter));
            if (!string.IsNullOrEmpty(filter))
                filters.Add(string.Format("({0})", filter));

            newView.RowFilter = string.Join(" AND ", filters.ToArray());

            return newView;
        }

        public static DataView Clone(this DataView source)
        {
            return source.Clone(string.Empty);
        }
    }

 

(1) 当中 Setting.Connection 为 string 类型,只必要钦命 db 路径,本文
Connection 为: Data Source=D:\Trade\Trade\DB\Quotation.db 

      那里提一下 MSSQL 的 连接字符串以示比较,一般情形下 MSSQL
的连天为ConnectionString 类型的布局节点,如:

      <add name=”Test” connectionString=”Data
Source=ServerName;Initial Catalog=dbName;User ID=xxx;Password=***;”
      providerName=”System.Data.SqlClient” />

(二) 能够见到数库表的操作方法 与 其余数据库操作
类似:连接,运转操作命令,关闭

(3) 小编尝试添加叁个 SQLiteParameter.Direction
为 ParameterDirection.Output 的参数 但报错,到现在没找到科学的选择方法

(四) 使用 SQLiteConnection 能够用 using
的不二诀窍采纳,有利于程序内部存款和储蓄器管理及垃圾回收

三、SQLite的下载

三、SQLite的下载

 
 非混合编写翻译的二进制包有System.Data.SQLite.dll和SQLite.Interop.dll四个动态库。按法定表达,SQLite.Interop.dll是足以放与System.Data.SQLite.dll相同的目录下,也能够置身x八六或x6四子目录下,由
System.Data.SQLite.dll依据系统项目调用。为了确认,下载如下五个包来展开相比较:

3.一.伍 新建 DAO 类,继承 SQLiteHelper ,主如若针对性具体表 的主意: 

 

    public class DAO : SQLiteHelper
    {
        public DAO(string tableName)
        {
            TableName = tableName;
        }
        public string SelectTableQuery { get { return "SELECT * FROM " + TableName; } }

        public string TableStructureQuery { get { return SelectTableQuery + " WHERE 1=0"; } }

        public int GetMaxID(string fieldName)
        {
            StringBuilder commandText = new StringBuilder();
            commandText.AppendLine(string.Format(@"SELECT MAX({0}) ", fieldName));
            commandText.AppendLine(string.Format(@" FROM {0} ", TableName));
            DataTable dt = GetDataTable(commandText.ToString());
            if (dt == null || dt.Rows.Count == 0)
                return 0;
            else
                return int.Parse(dt.Rows[0][0].ToString());
        }

        public string TableName { get; set; }

        internal DataTable GetDataTableStructor()
        {
            return GetDataTable(TableStructureQuery);
        }

        public bool Update(DataTable dt)
        {
            return base.Update(TableName, dt);
        }
    }

 

一、由于是基于.NET的C#编制程序,需下载System.Data.SQLite.dll来拓展引用,下载网址如下:

一、由于是基于.NET的C#编制程序,需下载System.Data.SQLite.dll来拓展引用,下载网站如下:

sqlite-netFx40-binary-Win32-2010-1.0.90.0.zip

sqlite-netFx40-binary-x64-2010-1.0.90.0.zip

4. SQLite 实例小程序 

    Quotation
小程序是用以查看工商业银行行贵金属报价的小工具(那里只更新纸黄金报价),邮政储蓄贵金属报价法定网站

    用户能够随时查阅报价,设置 更新频率(暗中认可更新周期为 120 s )。

    下载的报价数据保存到 quotation.db
里,同时用户能够上传个人贵金属账户交易记录。

   
依照交易记录设置个人购销差价,选拔是不是播放音乐提示用户购购买销售出,适用于贵金属短线投资赞助小工具(投资有风险,入市需谨慎)

 

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

  结果发现唯有SQLite.Interop.*今非昔比,其余文件都完全相同

四.1 使用办法:

4.1.1 下载:Quotation  Setup
和 db 文件 ( setup 文件用 VS 自带工具打包好的MSI 文件 非源代码 )

四.壹.② 安装 Setup 文件, PS: 想要精通 db 结构的读者能够用 VS 或其他SQLite 命令、视图软件查看

四.1.三 更改配置文件,打开 Trade.exe.config , 修改 节点:

<setting name=”Connection” serializeAs=”String”>
<value>Data
Source=D:\Trade\Trade\DB\Quotation.db</value>
</setting>

        在那之中 <value>Data Source = db path</value> 是
Quotation.db 的存放路径,注意假如软件设置在 C
盘保存时或然提示不能够访问,那时能够把 .config
文件复制出来修改后再交替原来的文件

四.一.四 从 <Load Trx> 菜单命令导入从光大银行下载好的 txt
文件(不要改动格式)用于相比较差价, <Transactions>
查看导入的贸易记录,无效的贸易记录能够选中后 Transactions -> Close
来关闭记录。

4.一.第五小学程序为笔者个人花费,用于学习调换,个人免费使用,文章权解释权归软件小编全体,任何人不得开始展览反编写翻译及这一个向客人收取别的开销,欢迎读者留言提出意见和提议。

四.一.六 程序截图

威尼斯人线上娱乐 7

 

 

补充:

android app 查询中信银行报价可到以下网站下载:

IcbcQuotation
下载 

软件表明: 其实是报价网站的火速形式,只是每隔30s 自动刷新一下

软件截图:

威尼斯人线上娱乐 8

2、由于应用的是.NET Framework 四.0,且软件开发的指标平台是X八6,因而需下载
sqlite-netFx40-setup-x八陆-2010-一.0.拾5.二.exe 软件,下载网站如下:

二、由于采纳的是.NET Framework 四.0,且软件开发的目的平台是X八陆,因而需下载
sqlite-netFx40-setup-x八6-2010-一.0.105.2.exe 软件,下载网站如下:

威尼斯人线上娱乐 9

http://system.data.sqlite.org/downloads/1.0.105.2/sqlite-netFx40-setup-x86-2010-1.0.105.2.exe
http://system.data.sqlite.org/downloads/1.0.105.2/sqlite-netFx40-setup-x86-2010-1.0.105.2.exe

 

除此以外,还有八个 sqlite-netFx40-setup-bundle-x八陆-20十-1.0.105.二.exe,它与
sqlite-netFx40-setup-x八陆-20十-壹.0.拾5.二.exe
的区分是,它包括VS20十的运转时组件,因接纳的VS2015,全数安装该带有bundle的软件其实并未有怎么用处,假设你利用的是VS20十,则能够开始展览下载安装,下载网站如下:

除此以外,还有3个 sqlite-netFx40-setup-bundle-x八六-20十-一.0.105.二.exe,它与
sqlite-netFx40-setup-x8六-2010-1.0.十5.二.exe
的差别是,它涵盖VS20拾的运作时组件,因选拔的VS20壹5,全部安装该带有bundle的软件其实并未什么用处,如果你利用的是VS20拾,则足以开始展览下载安装,下载网站如下:

[正如结实:唯有SQLite.Interop.*不同]

http://system.data.sqlite.org/downloads/1.0.105.2/sqlite-netFx40-setup-bundle-x86-2010-1.0.105.2.exe
http://system.data.sqlite.org/downloads/1.0.105.2/sqlite-netFx40-setup-bundle-x86-2010-1.0.105.2.exe

 

三、下载的是Setup安装包,由此只需遵从点击下一步(Next)或安装(Install),直至安装达成即可。

三、下载的是Setup安装包,由此只需坚守点击下一步(Next)或设置(Install),直至安装达成即可。

  然后将三个包的SQLite.Interop.*分级位居x8六和x6四子目录下,合并成一个包。再在区别门类的系统下运营test.exe,结果都以全然通过

四、创制加密版本的SQLite数据库

肆、成立加密版本的SQLite数据库

威尼斯人线上娱乐 10

在此采纳的SQLite数据库管理软件为SQLite
Studio,版本为③.一.壹,下载网站如下:

在此选择的SQLite数据库管理软件为SQLite
Studio,版本为3.1.一,下载网站如下:

 

https://sqlitestudio.pl/files/sqlitestudio3/complete/win32/sqlitestudio-3.1.1.zip
https://sqlitestudio.pl/files/sqlitestudio3/complete/win32/sqlitestudio-3.1.1.zip

 

有人会问,怎么不应用Navicat For
SQLite,那么些软件不仅有完全的中文版本,而且还有详细使用验证,不是越来越好啊?

有人会问,怎么不采用Navicat For
SQLite,那个软件不仅有一齐的汉语版本,而且还有详细使用验证,不是越来越好呢?

   最终索要做的就是在Visual
Studio项目中引用System.Data.SQLite.dll,再将x86\SQLite.Interop.dll和x64
\SQLite.Interop.dll拷贝到品种根目录,包蕴在档次中,在性质中安装“若是较新则复制”或“始终复制”。生成结果就好像这么:

实则,当初也想用那几个软件来对SQLite数据库举办田管,但在创造加密版本的SQLite数据库时,发现采取System.Data.SQLite.dll来对该数据库操作时,会弹出类似数据库文件被加密只怕不是数据库文件的提示,而非加密版本的就从未此难题,因而,能够利用Navicat
For
SQLite来对非加密的SQLite数据操作,但假如需求使用加密的SQLite数据库,推荐应用SQLite
Studio,因为它生成的加密版本SQLite数据库能够被System.Data.SQLite.dll识别。

实际,当初也想用那些软件来对SQLite数据库实行政管理理,但在创设加密版本的SQLite数据库时,发现采用System.Data.SQLite.dll来对该数据库操作时,会弹出类似数据库文件被加密只怕不是数据库文件的晋升,而非加密版本的就从未有过此难题,因而,能够选取Navicat
For
SQLite来对非加密的SQLite数据操作,但固然要求使用加密的SQLite数据库,推荐应用SQLite
Studio,因为它生成的加密版本SQLite数据库能够被System.Data.SQLite.dll识别。

TestSQLite\bin\Debug

│  System.Data.SQLite.dll

│  TestSQLite.exe

├─x64

│      SQLite.Interop.dll

└─x86

       SQLite.Interop.dll

有关为啥不可能动用Navicat For
SQLite来对加密数据库记性操作的缘由是:Navicat使用的加密算法与SQLite
Studio的不平等。

有关为什么不能够选取Navicat For
SQLite来对加密数据库记性操作的案由是:Navicat使用的加密算法与SQLite
Studio的不一致。

  组合后的包命名称为“sqlite-netFx40-static-binary-x八陆-x6四-200九-一.0.90.0.zip”,共享给我们,欢迎下载应用。

1、打开SQLite Studio,点击“添加数据库”按钮,如下图所示:

壹、打开SQLite Studio,点击“添加数据库”按钮,如下图所示:

 

威尼斯人线上娱乐 11

威尼斯人线上娱乐 12

◆ 51CTO财富站共享

◆ 360云盘共享

二、数据类型选取“System.Data.SQLite”,点击巴黎绿增加按钮,将文件保留至D:\Test.db,并在Password1栏内输入密码:2017(如不使用密码,此处留空即可),然后点击“OK”按钮即可创造二个加密版本的SQLite
DB文件,如下图所示:

二、数据类型选拔“System.Data.SQLite”,点击豆绿拉长按钮,将文件保留至D:\Test.db,并在Password壹栏内输入密码:20一7(如不使用密码,此处留空即可),然后点击“OK”按钮即可创造3个加密版本的SQLite
DB文件,如下图所示:

 

威尼斯人线上娱乐 13

威尼斯人线上娱乐 14

 

3、双击“Test”数据库,将会显得其下的子节点,接纳“Tables”,并在工具栏点击“新建表”按钮,如下图所示:

3、双击“Test”数据库,将会议及展览示其下的子节点,选择“Tables”,并在工具栏点击“新建表”按钮,如下图所示:

转自:

威尼斯人线上娱乐 15

威尼斯人线上娱乐 16

4、在Table name文本框内输入表名Info,并点击“Add
columns(Ins)”图标以便添加列,如下图所示:

四、在Table name文本框内输入表名Info,并点击“Add
columns(Ins)”图标以便添加列,如下图所示:

威尼斯人线上娱乐 17

威尼斯人线上娱乐 18

5、添加第2个字段,字段名称为ID,数据类型为Text,将主键前的复选框打钩,并点击“OK”按钮,如下图所示:

5、添加第二个字段,字段名叫ID,数据类型为Text,将主键前的复选框打钩,并点击“OK”按钮,如下图所示:

威尼斯人线上娱乐 19

威尼斯人线上娱乐 20

陆、重复第四个步骤,点击“Add
columns(Ins)”图标以便添加别的多个列,字段名称叫Name,数据类型为Text,将非空前的复选框打钩,并点击“OK”按钮,如下图所示:

6、重复第伍个步骤,点击“Add
columns(Ins)”图标以便添加此外三个列,字段名称为Name,数据类型为Text,将非空前的复选框打钩,并点击“OK”按钮,如下图所示:

威尼斯人线上娱乐 21

威尼斯人线上娱乐 22

柒、点击“Commit structure changes”图标以便保存该表及字段,如下图所示:

7、点击“Commit structure changes”图标以便保存该表及字段,如下图所示:

威尼斯人线上娱乐 23

威尼斯人线上娱乐 24

8、在弹出的对话框点击“OK”按钮,即可形成表单的创办工作,如下图所示:

8、在弹出的对话框点击“OK”按钮,即可达成表单的创导工作,如下图所示:

威尼斯人线上娱乐 25

威尼斯人线上娱乐 26

九、选用“数据”选项卡,点击“插入行(Ins)”图标按钮,如下所示:

九、选用“数据”选项卡,点击“插入行(Ins)”图标按钮,如下所示:

威尼斯人线上娱乐 27

威尼斯人线上娱乐 28

十、在行数据编辑栏里输入两条数据,第壹条数据ID为201七、Name为LSB,第二条数据ID为201一、Name为CNC,如下图所示:

拾、在行数据编辑栏里输入两条数据,第二条数据ID为20一七、Name为LSB,第一条数据ID为201一、Name为CNC,如下图所示:

威尼斯人线上娱乐 29

威尼斯人线上娱乐 30

1一、添加数码甘休之后,点击“提交(Ctrl+Return)”图标按钮提交刚才输入的两条数据,如下图所示:

11、添加数据停止之后,点击“提交(Ctrl+Return)”图标按钮提交刚才输入的两条数据,如下图所示:

威尼斯人线上娱乐 31

威尼斯人线上娱乐 32

12、关闭SQLite Studio数据库管理软件。

1二、关闭SQLite Studio数据库管理软件。

五、使用System.Data.SQLite.dll访问SQLite数据库

五、使用System.Data.SQLite.dll访问SQLite数据库

一、新建1个连串名字为“SQLiteTest”的控制台应用程序,如下图所示:

一、新建2个类型名称叫“SQLiteTest”的控制台应用程序,如下图所示:

威尼斯人线上娱乐 33

威尼斯人线上娱乐 34

2、在“SQLiteTest”项目中右键点击“引用”,在弹出的上下文菜单中采纳“添加引用(讴歌MDX)”,如下图所示:

二、在“SQLiteTest”项目中右键点击“引用”,在弹出的上下文菜单中采纳“添加引用(福睿斯)”,如下图所示:

威尼斯人线上娱乐 35

威尼斯人线上娱乐 36

三、将路径为“C:\Program Files
(x86)\System.Data.SQLite\2010\GAC\System.Data.SQLite.dll”的引用添加进去,如下图所示:

三、将路径为“C:\Program Files
(x86)\System.Data.SQLite\2010\GAC\威尼斯人线上娱乐 ,System.Data.SQLite.dll”的引用添加进去,如下图所示:

威尼斯人线上娱乐 37

威尼斯人线上娱乐 38

4、在项目性质设置中,将“生成”选项卡中的对象平台改为“X捌6”,不然,软件不可能运转,原因是利用的是X捌六版本的System.Data.SQLite.dll,如下图所示:

4、在项目性质设置中,将“生成”选项卡中的靶子平台改为“X86”,不然,软件非常的小概运营,原因是选拔的是X八陆版本的System.Data.SQLite.dll,如下图所示:

威尼斯人线上娱乐 39

威尼斯人线上娱乐 40

 

 

伍、在Main主函数里输入以下代码,如下:

5、在Main主函数里输入以下代码,如下:

using System;
using System.Data.SQLite;
using System.Data;

namespace SQLiteTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SQLiteConnection connection = new SQLiteConnection(@"Data Source = D:\test.db;Password = 2017"))
            {
                using (SQLiteCommand command = new SQLiteCommand(connection)
                { CommandText = "SELECT * FROM [main].[Info]" })
                {
                    DataTable table = new DataTable("Info");
                    SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
                    adapter.Fill(table);
                    foreach(DataRow row in table.Rows)
                    {
                        foreach(DataColumn col in table.Columns)
                        {
                            Console.Write($"{row[col]}\t");
                        }
                        Console.WriteLine();
                    }
                }
            }
            Console.ReadKey();
        }
    }
}
using System;
using System.Data.SQLite;
using System.Data;

namespace SQLiteTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SQLiteConnection connection = new SQLiteConnection(@"Data Source = D:\test.db;Password = 2017"))
            {
                using (SQLiteCommand command = new SQLiteCommand(connection)
                { CommandText = "SELECT * FROM [main].[Info]" })
                {
                    DataTable table = new DataTable("Info");
                    SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
                    adapter.Fill(table);
                    foreach(DataRow row in table.Rows)
                    {
                        foreach(DataColumn col in table.Columns)
                        {
                            Console.Write($"{row[col]}\t");
                        }
                        Console.WriteLine();
                    }
                }
            }
            Console.ReadKey();
        }
    }
}

陆、运行结果如下:

陆、运营结果如下:

威尼斯人线上娱乐 41

威尼斯人线上娱乐 42

 

 

附源代码:

附源代码:

https://pan.baidu.com/s/1bpeXXvx
https://pan.baidu.com/s/1bpeXXvx


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图