使用SQLite在Asp.Net(using SqLite in Asp.Net)

2019-09-28 21:41发布

我想在我的Asp.Net使用SQLite。 我有以下的ConnectionString web.config中的代码

<add name="ConnectionStringName" connectionString="data source=MembersLastLogin3.s3db" providerName="System.Data.SQLite" />

这里是运行的查询代码

public  int ExecuteNonQuery(string sql)
    {
        try
        {
            string con = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString; 
            SQLiteConnection cnn = new SQLiteConnection(con);
            cnn.Open();
            SQLiteCommand mycommand = new SQLiteCommand(cnn);
            mycommand.CommandText = sql;
            int rowsUpdated = mycommand.ExecuteNonQuery();
            cnn.Close();
            return rowsUpdated;              
        }
        catch { throw; }
    }
}

这个简单的查询

sql = "INSERT INTO LastLogin (MemId ) VALUES ('" + res + "');";
                LocalDb.ExecuteNonQuery(sql);

但我得到的错误“表LastLogin不存在”

我已经使用SqLitein的.Net已经但这是第一次,我用它在Asp.Net,我敢肯定,表中存在,但似乎它可以连接到它,这里是我的问题? 在web.config中的设置是否足够? 是否有任何教程可用? 谢谢

Answer 1:

验证是否桌在你的SQLite数据库使用的getSchema方法存在:

using ( var conn = new SQLiteConnection( "Data Source=<PathToDb>\\MembersLastLogin3.s3db" ) )
{
  DataTable tbl = conn.GetSchema("Tables")
  // The DataTable will list all the tables in the
  // db as well as information about each table.
}

最可能的原因是您正在使用不指向SQLite数据库这就是为什么你会看到错误表中不存在的连接字符串。

作为与您发布,如果你不与外做任何的示例代码一个侧面说明,那么就没有必要去尝试/捕获异常,如果异常只是要后仰。



Answer 2:

我想你的文件数据库存储在asp.net网站的App_Data目录。

所以只要尝试改变你的连接字符串:

<add name="ConnectionStringName" connectionString="data source=|DataDirectory|MembersLastLogin3.s3db" providerName="System.Data.SQLite" />


Answer 3:

编辑:看来你需要指定一个绝对路径: SQLite的通过代码访问的任何表?



文章来源: using SqLite in Asp.Net