SQLite数据库相关

nnnnyyyy 2013-07-14 09:38:29
1.如何在项目中嵌入SQLite数据库。目前我使用的方法是在应用中生成数据库和表结构:

/// <summary>
/// 创建数据库连接
/// </summary>
/// <returns></returns>
private SQLiteConnection DataConnection()
{
//连接数据库
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "MySqlite.sqlite");

SQLiteConnection sqliteConnection = new SQLite.SQLiteConnection(dbPath);

return sqliteConnection;
}

/// <summary>
/// 创建表结构
/// </summary>
public void CreateTable()
{
if (DBConnection == null)
{
DBConnection = DataConnection();
}

DBConnection.CreateTable<ExerciseRecordTable>();

DBConnection.CreateTable<ReportCardTable>();

DBConnection.CreateTable<ErrorTopicTable>();
}
}

那么我可不可以再应用外用SQLite工具生成SQLite数据库和表结构,把这个文件嵌入到项目中使用呢?如果可以,该如何创建数据库连接呢(就是这个DataConnection()方法该怎么写)?


2.SQLite数据库文件的后缀名是什么?

谢谢!
...全文
278 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
f_jason 2013-07-17
  • 打赏
  • 举报
回复
1、SQLite数据库可以嵌入到工程的Resource资源里面,或者可以通过程序升级的方式,升级到固定的某个文件夹。 通过Path.GetDirectoryName(Application.ExecutablePath);得到应用程序的目录,然后用Path.Combine取到数据库的路径,有了数据库的路径就可以创建连接了。 2、SQLite数据库文件的后缀名可以随便取的,只要在自己的代码中正确用自己取的数据库名就好了。
xiaogui340 2013-07-17
  • 打赏
  • 举报
回复
引用 15 楼 nnnnyyyy 的回复:
[quote=引用 12 楼 xiaogui340 的回复:]
有款工具sqlitebrowser,可以先生成数据库文件,然后把文件作为资源文件放到项目中,
之后利用System.Data.SQLite.dll
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
}


但文件作为资源文件放到项目中是,connectionString应当怎么写呢?[/quote]
xiaogui340 2013-07-17
  • 打赏
  • 举报
回复
引用 15 楼 nnnnyyyy 的回复:
[quote=引用 12 楼 xiaogui340 的回复:] 有款工具sqlitebrowser,可以先生成数据库文件,然后把文件作为资源文件放到项目中, 之后利用System.Data.SQLite.dll using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); }
但文件作为资源文件放到项目中是,connectionString应当怎么写呢?[/quote] private static string connectionString = "Data Source= " + Application.StartupPath+ "\\FamilyFinance.db";
Dobzhansky 2013-07-16
  • 打赏
  • 举报
回复
connection.GetSchema 看看表是否已经创建了. 如果没有创建, 再有程序创建
nnnnyyyy 2013-07-16
  • 打赏
  • 举报
回复
引用 12 楼 xiaogui340 的回复:
有款工具sqlitebrowser,可以先生成数据库文件,然后把文件作为资源文件放到项目中, 之后利用System.Data.SQLite.dll using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); }
但文件作为资源文件放到项目中是,connectionString应当怎么写呢?
nnnnyyyy 2013-07-16
  • 打赏
  • 举报
回复
引用 11 楼 leafly0719 的回复:
我都是把数据库放到资源文件里面,程序启动后,判断指定数据库连接的数据库是否存在,若是不存在,则从资源里面COPY出来
这也是一种思路。
nnnnyyyy 2013-07-16
  • 打赏
  • 举报
回复
引用 10 楼 nonocast 的回复:
滚吧。。。。
B货是4楼换的马甲吧。艹
xiaogui340 2013-07-16
  • 打赏
  • 举报
回复
有款工具sqlitebrowser,可以先生成数据库文件,然后把文件作为资源文件放到项目中, 之后利用System.Data.SQLite.dll using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); }
leafly0719 2013-07-15
  • 打赏
  • 举报
回复
我都是把数据库放到资源文件里面,程序启动后,判断指定数据库连接的数据库是否存在,若是不存在,则从资源里面COPY出来
玲cc 2013-07-15
  • 打赏
  • 举报
回复
我处理过的情况都是将sqlite的数据文件作为程序以外的文件单独使用。按理说lz的第一个问题是无法实现的。因为如果将数据库文件当作资源文件嵌入到程序中,当程序想要对数据做增删改的时候,实际上相当于要修改程序集文件本身,这应该是不能实现的吧。
nonocast 2013-07-15
  • 打赏
  • 举报
回复
滚吧。。。。
nnnnyyyy 2013-07-15
  • 打赏
  • 举报
回复
引用 7 楼 hubro 的回复:
项目资源是嵌到程序集中的,怎么能写? 要写肯是当前程序以外的文件,又回到这个的初终了
windows8下面是有区别的。 自己生产文件是可以的(var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "DrivingLicence.db3");) 嵌入文件就不行了(var dbPath = Path.Combine("ms-appx:///DataBase/DrivingLicence.db3");)。
  • 打赏
  • 举报
回复
一点也不奇怪,那些短期培训班往往就是抄笔记的,总会问出一大堆这类问题。
引用 2 楼 nnnnyyyy 的回复:
第一个问题有没有解?
你代码哪一行打开了数据库文件,文件名叫做什么,你自己猜不出来吗?
tcmakebest 2013-07-14
  • 打赏
  • 举报
回复
问题有点怪,都能够用代码创建数据库了,却还问数据库连接怎么写?
nnnnyyyy 2013-07-14
  • 打赏
  • 举报
回复
第一个问题有没有解?
全栈极简 2013-07-14
  • 打赏
  • 举报
回复
SQLite后缀名可以随便定义,甚至是*.nnnnyyyy。我曾经试过的。
hubro 2013-07-14
  • 打赏
  • 举报
回复
项目资源是嵌到程序集中的,怎么能写? 要写肯是当前程序以外的文件,又回到这个的初终了
nnnnyyyy 2013-07-14
  • 打赏
  • 举报
回复
引用 3 楼 tcmakebest 的回复:
问题有点怪,都能够用代码创建数据库了,却还问数据库连接怎么写?
我觉得你是没有看清楚。我是想不用代码创建数据库,而是用数据库工具生成一个数据库文件作为资源嵌入到项目中。 现在是想问怎么操作这个资源文件。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧