一、关于SQLite ADONET: SystemDataSQLite 是一个原始 SQLite 的加强版。它不需要链接 NET Runtime,因此可脱离 NET 独立发布,它内嵌了一个完整的 ADONET 20 引擎,为开发提供了完整的支持。
二、在C#中使用SQLite
1 添加引用: SystemDataSQLiteDLL 。
2 创建数据库文件: SQLiteConnectionCreateFile(fileName);
3 连接数据库: var connection = new SQLiteConnection(connectionString);
connectionString 中包含了数据库的一些配置信息,比如数据库文件路径,数据库密码等,可用 SQLiteConnectionStringBuilder 来创建 connectionString,当然也有其他方法,都很简单。
4 从数据库读取数据。
三、代码:
view sourceprint
// 注意此处 using 。
using System;
using SystemDataSQLite;
using SystemText;
namespace ConsoleApplication
{
public class SQLiteTester
{
public static void Test()
{
// 1创建一个数据库文件。
var databaseFileName = "D:/testdb3";
SQLiteConnectionCreateFile(databaseFileName);
// 2创建数据库连接。
var connectionString = new SQLiteConnectionStringBuilder
{
DataSource = databaseFileName,
Password = "xxxxxx" // 此处假设数据库密码为: xxxxxx。
};
// 当然也可以直接: var connection = new SQLiteConnection("data source=" + databaseFileName + ";password=" + Password);
using (var connection = new SQLiteConnection(connectionStringToString()))
{
// 3打开连接。
connectionOpen();
要在Android系统中 *** 作SQLite数据库,是通过Android的核心类SQLiteDatabase类来实现的,通常情况下为了数据库升级的需要以及使用方便,我们会选择继承SQLiteOpenHelper抽像类,但是SQLiteOpenHelper会将数据库文件创建在一个固定的目录(内存的/data/data/<package name/databases>目录中),如果你想使用已经存在的数据库文件也就是说数据库会和程序一起发布,就得通过使用SQLiteDabase的静态方法OpenOrCreateDatabase()方法来得到SQLiteDabase对象,下面是一个具体 *** 作类:
package netmydao;
import javaioFile;
import javaioFileOutputStream;
import javaioInputStream;
import netmyjokebookR;
import androidappActivity;
import androidcontentContext;
import androiddatabasesqliteSQLiteDatabase;
public class DBHelper {
//得到SD卡路径
private final String DATABASE_PATH = androidosEnvironment
getExternalStorageDirectory()getAbsolutePath()
+ "/joke";
private final Activity activity;
//数据库名
private final String DATABASE_FILENAME;
public DBHelper(Context context) {
// TODO Auto-generated constructor stub
//这里直接给数据库名
DATABASE_FILENAME = "jokebookdb3";
activity = (Activity)context;
}
//得到 *** 作数据库的对象
public SQLiteDatabase openDatabase()
{
try
{
boolean b = false;
//得到数据库的完整路径名
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
//将数据库文件从资源文件放到合适地方(资源文件也就是数据库文件放在项目的res下的raw目录中)
//将数据库文件复制到SD卡中 File dir = new File(DATABASE_PATH);
if (!direxists())
b = dirmkdir();
//判断是否存在该文件
if (!(new File(databaseFilename))exists())
{
//不存在得到数据库输入流对象
InputStream is = activitygetResources()openRawResource(
Rrawjokebook);
//创建输出流
FileOutputStream fos = new FileOutputStream(databaseFilename);
//将数据输出
byte[] buffer = new byte[8192];
int count = 0;
while ((count = isread(buffer)) > 0)
{
foswrite(buffer, 0, count);
}
//关闭资源
fosclose();
isclose();
}
//得到SQLDatabase对象
SQLiteDatabase database = SQLiteDatabaseopenOrCreateDatabase(
databaseFilename, null);
return database;
}
catch (Exception e)
{
Systemoutprintln(egetMessage());
}
return null;
}
}
写完这个类之后,就能得到SQLiteDatabase对象,就能对数据库 *** 作了
1dll的入口只有一处,出口也只有一处,保证完整性。
2能进行所有的数据库 *** 作。
3所有的函数需要有返回值,并且返回值需要的是最简单的数据类型,其他的应按照ref传值
4所有资源做到有申明就有释放,有打开就有关闭。
5不要用static这种东西
6安全性问题,什么是私有的,那些是可被外部调用的,受保护的
以上就是关于sqlite与 c#怎么连接并建立一个类库全部的内容,包括:sqlite与 c#怎么连接并建立一个类库、在项目中用SQLite数据库,数据库文件放在哪里啊、想写一个 *** 作数据库的通用dll类库,该注意什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)