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。

再次运行,无误。

 

目录
相关文章
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
3月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
2月前
|
SQL 缓存 大数据
C#高效处理大数据的批次处理,以及最好的数据库设计
C#高效处理大数据的批次处理,以及最好的数据库设计
88 0
|
3月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
356 6
|
4月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
213 3
C#winform中使用SQLite数据库
|
3月前
|
SQL 网络协议 数据库连接
已解决:连接SqlServer出现 provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程【C#连接SqlServer踩坑记录】
本文介绍了解决连接SqlServer时出现“provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程”错误的步骤,包括更改服务器验证模式、修改sa用户设置、启用TCP/IP协议,以及检查数据库连接语句中的实例名是否正确。此外,还解释了实例名mssqlserver和sqlserver之间的区别,包括它们在默认设置、功能和用途上的差异。
|
4月前
|
关系型数据库 MySQL 大数据
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
298 2
|
7月前
|
存储 运维 5G
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
数据是 5G 全连接工厂的核心要素,为支持全方位的数据收集、存储、分析等工作的高效进行,联通 5G 全连接工厂从典型的 Lambda 架构演进为 All in [Apache Doris](https://c.d4t.cn/vwDf8R) 的实时/离线一体化架构,并凭借 Doris 联邦查询能力打造统一查询网关,数据处理及查询链路大幅简化,为联通 5G 全连接工厂带来数据时效性、查询响应、存储成本、开发效率全方位的提升。
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
|
7月前
|
SQL 存储 Oracle
C#利用IDbCommand实现通用数据库脚本执行程序
C#利用IDbCommand实现通用数据库脚本执行程序

热门文章

最新文章