VS中C#连接SQLite数据库处理器架构“x86”不匹配的问题

简介: 原文链接 https://www.cnblogs.com/zhaoliankun/p/9088200.html 我的环境配置:windows 64,VS,SQLite(点击下载),System.Data.SQLite.DLL(点击下载)。

原文链接

https://www.cnblogs.com/zhaoliankun/p/9088200.html

我的环境配置:windows 64,VS,SQLite(点击下载),System.Data.SQLite.DLL(点击下载)。

1.在VS中新建一个控制台应用程序,如下图

2.添加引用

将下载的System.Data.SQLite.DLL复制到新建项目的路径下

在VS中找到项目,右键选择添加引用

浏览到dll路径下,添加进来。

代码中添加

  using System.Data.SQLite; 

 

添加类库CSQLiteHelper,用于存放SQLite操作方法(此代码原文链接. https://blog.csdn.net/pukuimin1226/article/details/8516733

 

具体代码

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Data.SQLite;
  6 using System.Data;
  7 using System.Xml;
  8 using System.Text.RegularExpressions;
  9 using System.IO;
 10 
 11 namespace CSharp_SQLite
 12 {
 13     public class CSQLiteHelper
 14     {
 15         private string _dbName = "";
 16         private SQLiteConnection _SQLiteConn = null;     //连接对象
 17         private SQLiteTransaction _SQLiteTrans = null;   //事务对象
 18         private bool _IsRunTrans = false;        //事务运行标识
 19         private string _SQLiteConnString = null; //连接字符串
 20         private bool _AutoCommit = false; //事务自动提交标识
 21 
 22         public string SQLiteConnString
 23         {
 24             set { this._SQLiteConnString = value; }
 25             get { return this._SQLiteConnString; }
 26         }
 27 
 28         public CSQLiteHelper(string dbPath)
 29         {
 30             this._dbName = dbPath;
 31             this._SQLiteConnString = "Data Source=" + dbPath;
 32         }
 33 
 34         /// <summary>
 35         /// 新建数据库文件
 36         /// </summary>
 37         /// <param name="dbPath">数据库文件路径及名称</param>
 38         /// <returns>新建成功,返回true,否则返回false</returns>
 39         static public Boolean NewDbFile(string dbPath)
 40         {
 41             try
 42             {
 43                 SQLiteConnection.CreateFile(dbPath);
 44                 return true;
 45             }
 46             catch (Exception ex)
 47             {
 48                 throw new Exception("新建数据库文件" + dbPath + "失败:" + ex.Message);
 49             }
 50         }
 51 
 52 
 53         /// <summary>
 54         /// 创建表
 55         /// </summary>
 56         /// <param name="dbPath">指定数据库文件</param>
 57         /// <param name="tableName">表名称</param>
 58         static public void NewTable(string dbPath, string tableName)
 59         {
 60 
 61             SQLiteConnection sqliteConn = new SQLiteConnection("data source=" + dbPath);
 62             if (sqliteConn.State != System.Data.ConnectionState.Open)
 63             {
 64                 sqliteConn.Open();
 65                 SQLiteCommand cmd = new SQLiteCommand();
 66                 cmd.Connection = sqliteConn;
 67                 cmd.CommandText = "CREATE TABLE " + tableName + "(Name varchar,Team varchar, Number varchar)";
 68                 cmd.ExecuteNonQuery();
 69             }
 70             sqliteConn.Close();
 71         }
 72         /// <summary>
 73         /// 打开当前数据库的连接
 74         /// </summary>
 75         /// <returns></returns>
 76         public Boolean OpenDb()
 77         {
 78             try
 79             {
 80                 this._SQLiteConn = new SQLiteConnection(this._SQLiteConnString);
 81                 this._SQLiteConn.Open();
 82                 return true;
 83             }
 84             catch (Exception ex)
 85             {
 86                 throw new Exception("打开数据库:" + _dbName + "的连接失败:" + ex.Message);
 87             }
 88         }
 89 
 90         /// <summary>
 91         /// 打开指定数据库的连接
 92         /// </summary>
 93         /// <param name="dbPath">数据库路径</param>
 94         /// <returns></returns>
 95         public Boolean OpenDb(string dbPath)
 96         {
 97             try
 98             {
 99                 string sqliteConnString = "Data Source=" + dbPath;
100 
101                 this._SQLiteConn = new SQLiteConnection(sqliteConnString);
102                 this._dbName = dbPath;
103                 this._SQLiteConnString = sqliteConnString;
104                 this._SQLiteConn.Open();
105                 return true;
106             }
107             catch (Exception ex)
108             {
109                 throw new Exception("打开数据库:" + dbPath + "的连接失败:" + ex.Message);
110             }
111         }
112 
113         /// <summary>
114         /// 关闭数据库连接
115         /// </summary>
116         public void CloseDb()
117         {
118             if (this._SQLiteConn != null && this._SQLiteConn.State != ConnectionState.Closed)
119             {
120                 if (this._IsRunTrans && this._AutoCommit)
121                 {
122                     this.Commit();
123                 }
124                 this._SQLiteConn.Close();
125                 this._SQLiteConn = null;
126             }
127         }
128 
129         /// <summary>
130         /// 开始数据库事务
131         /// </summary>
132         public void BeginTransaction()
133         {
134             this._SQLiteConn.BeginTransaction();
135             this._IsRunTrans = true;
136         }
137 
138         /// <summary>
139         /// 开始数据库事务
140         /// </summary>
141         /// <param name="isoLevel">事务锁级别</param>
142         public void BeginTransaction(IsolationLevel isoLevel)
143         {
144             this._SQLiteConn.BeginTransaction(isoLevel);
145             this._IsRunTrans = true;
146         }
147 
148         /// <summary>
149         /// 提交当前挂起的事务
150         /// </summary>
151         public void Commit()
152         {
153             if (this._IsRunTrans)
154             {
155                 this._SQLiteTrans.Commit();
156                 this._IsRunTrans = false;
157             }
158         }
159 
160         
161     }
162 }

此时运行会报错,

警告  所生成项目的处理器架构“MSIL”与引用“System.Data.SQLite”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。 

修改项目属性:x86。

再次运行,无误。

 

目录
相关文章
|
25天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
26天前
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
18天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
21天前
|
消息中间件 数据库 云计算
微服务架构下的数据库事务管理策略####
在微服务架构中,传统的单体应用被拆分为多个独立的服务单元,每个服务维护自己的数据库实例。这种设计提高了系统的可扩展性和灵活性,但同时也带来了分布式环境下事务管理的复杂性。本文探讨了微服务架构下数据库事务的挑战,并深入分析了几种主流的事务管理策略,包括Saga模式、两阶段提交(2PC)以及基于消息的最终一致性方案,旨在为开发者提供一套适应不同业务场景的事务处理框架。 ####
|
1月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
31 8
|
5天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
21天前
|
设计模式 存储 缓存
微服务架构下的数据库设计策略
本文探讨了在微服务架构中进行数据库设计时,如何平衡数据的一致性、独立性与系统整体性能之间的关系。文章首先介绍了微服务架构的基本概念及其对数据库设计的影响,随后深入分析了三种主流的数据库设计模式——集中式、去中心化和混合模式,并结合实际案例讨论了它们的适用场景与优缺点。此外,还提出了一系列最佳实践建议,旨在帮助开发者更好地应对微服务环境下的数据管理挑战。
|
2月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
2月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
40 0