Tag: sqlite

使用Entity Framework创建SQLite数据库

我正在尝试创建我的第一个数据库。 我看到使用现有数据库和配置文件完成创建的无数post。 我想要实现的是,从代码创建数据库,并在代码后面进行初始化,没有配置文件。 我的MyContext类中有以下内容: public MyContext() : base(“MyDB”) { DatabaseConfiguration _DBConfig = new DatabaseConfiguration(); } public DbSet MyObject { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions .Remove(); } 假设每当我创建MyContext的实例时,如果不存在,我应该创建一个数据库。 但是没有文件被创建。 初始化完成如下: class DatabaseConfiguration : DbConfiguration { public DatabaseConfiguration() { SetProviderFactory(“System.Data.SQLite”, SQLiteFactory.Instance); SetProviderFactory(“System.Data.SQLite.EF6”, SQLiteProviderFactory.Instance); SetProviderServices(“System.Data.SQLite”, (DbProviderServices)SQLiteProviderFactory.Instance.GetService(typeof(DbProviderServices))); } } 我正在使用NuGet的SQLite和EF6的最新版本。

Windowsapp store应用程序将sqlite查询写入listview的文本块

我正在开发Windows应用程序。 我正在使用sqlite数据库,我想将select查询的结果放入listview。 我的listview在这些网格中有网格和文本框。 但是当我给它们命名时,我无法在c#中定位这些文本框。 这是项目的代码示例:第一个sqlite查询: private void Page_Loaded(object sender, RoutedEventArgs e) { string DBPath = string.Empty; DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, “mydb.s3db”); using (var db= new SQLite.SQLiteConnection(DBPath)) { var query= db.Table(); var result= query.ToList(); foreach( var x in result ) { company frm= new company(); //addition to listview… } } } 除了输入listview之外,一切都完美无缺。 我已经使用listview之外的文本块对其进行了测试。 和xaml: 对不起,很长的post,我想提供有关该计划的详细信息,然后你可以看到出了什么问题。 我将不胜感激任何帮助/反馈。 致以我的问候…

带有Metro的SQLite – 无法加载sqlite3.dll

我无法使用我的Metro应用程序使用SQLite创建数据库。 说明:如果加载SQLite3.dll失败,我将继续收到运行时exception。 观察:我发现数据库目录永远不会在应用程序包的LocalState目录中创建。 在观察之后,我逐字地在运行时实现了文件路径创建,并将sqlite3.dll删除到了预期的位置。 然而,我仍然收到一个未能加载SQLite3.dll的exception。 我利用SQLite的CRUD代码编译得很好。 SQLite依赖项(packages.config,SQLite.cs和sqlite3.dll)位于单独的metro类库中,而不是应用程序的可执行项目中。 sqlite3.dll基于ARM处理器。 sqlite3.dll设置为Content,Copy Always。 码: SQLiteAsyncConnection connection = new SQLiteAsyncConnection(DATABASE_DIRECTORY_NAME); return await connection.CreateTableAsync(); 请帮忙…

如何在没有ADO包装器的情况下在c#中使用SQLite

这有可能吗? 我读过的所有aritcles声明ADO包装器是必需的,但SQLite网站暗示除了他们的DLL之外别无其他。 如果有可能,那么我希望那里有代码示例。

Asp.net核心 – 没有这样的表:AspNetUsers

所以我试图为我的asp.net核心应用程序实现用户登录。 我在这里关注微软教程。 我有两个上下文,一个叫做SchoolContext,用于保存所有与学校相关的模型,另一个上下文叫做ApplicationDbContext,用于Account模型。 这都被保存到sqlite数据库。 一切正常,直到我尝试将用户注册到我的上下文。 当我尝试注册我得到的用户时,无法找到AspNetUsers表错误。 如果我查看数据库,我看不到AspNetUser表。 我尝试添加迁移 ,但我仍然得到同样的错误。 为什么没有创建表? Startup.cs public class Startup { public IConfigurationRoot Configuration { get; } public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile(“appsettings.json”, optional: true, reloadOnChange: true) .AddJsonFile($”appsettings.{env.EnvironmentName}.json”, optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); } // This method gets called by the runtime. Use this method […]

来自SQLite Database C#Android的Xamarin ListView显示项

在我的情况下,我想显示我创建的本地SQLite数据库中的项目,如下所示: public string CreateDB() //create database { var output = “”; string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), “IsoModule.db3”); output = “Database Created”; return output; } public string CreateTable() //create table { try { string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), “IsoModule.db3”); var db = new SQLiteConnection(dbPath); db.CreateTable(); db.CreateTable(); string result = “Table(s) created”; return result; } catch (Exception ex) { […]

DataGridView不显示列/数据

我正在尝试将一些数据加载到DataGridView中,但是DataGridView没有显示数据(即使它在调试模式中说它有项目) protected void PopulateGrid() { string dataSource = “test.db”; String connectionString = “Data Source=” + dataSource; String selectCommand = “SELECT * FROM test_run”; SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(selectCommand, connectionString); DataSet ds = new DataSet(); dataAdapter.Fill(ds); dataGridView1.DataSource = ds; dataGridView1.Refresh(); } 或者它不起作用并出现错误:“datareader已在此命令上处于活动状态” protected void PopulateGrid() { SQLiteConnection SQLconnect = new SQLiteConnection(); SQLiteCommand SQLcommand = default(SQLiteCommand); SQLiteDataAdapter […]

Windows Phone 8上的SQLite性能非常糟糕

我有一个使用SQLite数据库的Windows Phone 8应用程序。 要访问数据库,我使用Andy Wigley的WinRT Wrapper( 来源 ) 我的数据库非常简单,只有一个表:位置:整数主键“FieldIndex”,varchar“Field1”,varchar“Field2”,varchar“Field3”,varchar“Field4”,varchar“Field5”,varchar“Field6”,int “类别ID” 我还有“FieldIndex”和“CategoryID”的索引。 表中总共有4000个条目,数据库大小为900 kB。 我还压缩了数据库(真空)。 数据库作为应用程序内容部署到手机中(=在安装文件夹中=只读)。 我只使用数据库进行查询。 我的数据访问代码如下所示: using (var db = new SQLiteWinRTPhone.Database(Package.Current.InstalledLocation, @”Model\db.sqlite”)) { await db.OpenAsync(SQLiteWinRTPhone.SqliteOpenMode.OpenRead); await db.ExecuteStatementAsync(“PRAGMA journal_mode = MEMORY”); await db.ExecuteStatementAsync(“PRAGMA temp_store = 2;”); using (var stmt = await db.PrepareStatementAsync(“SELECT * FROM Locations;”)) { int i = 0; while (await stmt.StepAsync()) { […]

C#:如何以编程方式将SQL脚本导入数据库?

我是否必须手动解析SQL脚本并单独执行每个语句还是有更好的方法吗? Iam寻找以编程方式解决方案,我知道有些工具已经能够做到这一点。 如果解决方案适用于所有数据库系统,而不仅仅是sqlite,那将是一件好事。

升级WinForms SQLite数据库技术

我一直在研究数据库的升级程序,特别是SQLite类型的升级程序。 我被困在一个程序如何知道,“嘿……这个表不存在,让我们创建它!” 或“嘿,它确实存在,但它的三个版本落后,让我们更新它!” 我的意思是,我可以编写特定于每个表的每个版本的代码(基本上列出了应该包含哪些列…),然后将它全部转储到每个表的大量if语句或类似的东西,但那会疯了。 -`REALLY INSANE。 (我会包含那些代码,所以你们可以指出如何改进,但我已经知道这肯定不是正确的方法吗?) – 实际使用什么技术来升级数据库? 我想详细说明: a)检查表是否存在的最佳技术是什么? b)程序如何知道表后面有多少个版本? – 这适用于SQLite 3,用于桌面应用程序。