SQLite连接无法在C#中工作

我正在使用操作SQLite数据库的C#应用​​程序,直到昨天工作正常,它正在检索记录,

但自昨晚以来,Connection String返回Data Source = null

以下是测试代码:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SQLite; namespace SQLiteTest { public partial class Form1 : Form { //string connection_string = "Data Source=UrduDictionary"; string connection_string = "Data Source=" + Environment.CurrentDirectory + "\\Test.sqlite"; string query = ""; private SQLiteConnection _connection; private SQLiteCommand _command; private SQLiteDataAdapter _adapter; DataSet local; public Form1() { InitializeComponent(); } void Make_Connection() { _connection = new SQLiteConnection(connection_string); } private void button1_Click(object sender, EventArgs e) { Make_Connection(); } } 

}

下面是在Watch Window中调试期间看到的图像。

我使用的库是“SQLite-1.0.66.0-setup.exe”

我已经测试了其他数据库创建但结果相同,任何机构可以提供帮助吗?

这是我做的:

 private void button2_Click(object sender, EventArgs e) { string dbPath = Path.Combine(Environment.CurrentDirectory, "UrduDictionary"); string connString = string.Format("Data Source={0}", dbPath); using (SQLiteConnection conn = new SQLiteConnection(connString)) { StringBuilder query = new StringBuilder(); query.Append("SELECT * "); query.Append("FROM CATIGORY_TABLE "); using (SQLiteCommand cmd = new SQLiteCommand(query.ToString(), conn)) { conn.Open(); using (SQLiteDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.WriteLine("{0} {1} {2}", dr.GetValue(0), dr.GetValue(1), dr.GetValue(2)); } } } } } 

以防万一…

 var pathDB = System.IO.Path.Combine(Environment.CurrentDirectory, "Test.sqlite"); if (!System.IO.File.Exists(pathDB)) throw new Exception(); var connection_string = String.Format("Data Source={0};Version=3;", pathDB); 

这就是我用C#连接sqlite所做的:

  • 我从这里下载了Sqlite二进制文件
  • 那么这里是与Sqlite连接的代码:
 string dbConnectionString = @"Data Source=Sample.s3db;Version=3;"; try { SQLiteConnection sqlite_con = new SQLiteConnection(dbConnectionString); sqlite_con.Open(); string query = "select * from test;"; SQLiteCommand sqlite_cmd = new SQLiteCommand(query, sqlite_con); SQLiteDataReader dr = sqlite_cmd.ExecuteReader(); while (dr.Read()) { MessageBox.Show(dr.GetString(1)); } sqlite_con.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } 

如果有人想在下面的entity framework中使用它,那么代码(使用EntityFramework version 4.1.0.0进行测试)

Model和DataContext

 namespace WpfApplication1.Model { public class Movie { public Int64 Id { get; set; } public string name { get; set; } } public class MySqliteContext : DbContext { public DbSet Movies { get; set; } } } List movies = new List(); using (var context = new MySqliteContext()) movies = context.Movies.ToList(); foreach (var movie in movies) MessageBox.Show(movie.name.ToString()); 

这是包含DbProviderFactoriesDefaultConnectionFactoryapp.config文件