热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlite开机第一次启动读取不了表!

做了一个快捷栏,开机自启动,但是用了sqlite数据库后开机或者注销后进入系统,提示“sqliteerrornosuchtable;所有程序”然后要自己把软件关掉,再打开才正
做了一个快捷栏,开机自启动,但是用了 sqlite 数据库后 开机 或者 注销 后进入系统,提示 “sqlite error no such table; 所有程序” 然后要自己把软件关掉,再打开才正常,请问有解决方法吗?试过,软件延时读数据库,试过软件加个按钮一按就软件重启,但是都解决不了,一定要把软件关掉,再开才正常!能破吗?

顺便求 c# 连接 sqlite 的连接代码!或者SQLITE比较详细的中文资料!

9 个解决方案

#1


百度一下,到处是例子 http://www.cnblogs.com/luxiaoxun/p/3784729.html

#2


或者再推荐一些 C# 小巧又好用的数据库 ,最好不要依赖大型软件的,谢谢!

#3


引用 1 楼 lovelj2012 的回复:
百度一下,到处是例子 http://www.cnblogs.com/luxiaoxun/p/3784729.html


开机出现第一次启动不了,能破吗?

#4


sqlite error no such table
应该是应用程序没有找到数据库,连接字符串用绝对路径路径

#5


引用 4 楼 lovelj2012 的回复:
sqlite error no such table
应该是应用程序没有找到数据库,连接字符串用绝对路径路径


换成这样 还是不行!  DataSource = @"D:\Program Files\快捷栏\KJL_SJK";

#6


这是数据库 连接代码!


        System.Data.SQLite.SQLiteConnection CONN = new System.Data.SQLite.SQLiteConnection();
        System.Data.SQLite.SQLiteConnectionStringBuilder CONNStr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
        System.Data.SQLite.SQLiteCommand CMD = new System.Data.SQLite.SQLiteCommand();
        string DataSource = "";
        string SQL = "";

        private void sjklj()// 数据库连接!
        {

            DataSource = @"D:\Program Files\快捷栏\KJL_SJK";
            CONNStr.DataSource = DataSource;
            //CONNStr.Password = "";//设置密码,SQLite ADO.NET实现了数据库密码保护  (似乎与SqliteManager有冲突)
            CONN.ConnectionString = CONNStr.ToString();
            CONN.Open();
            CMD.Connection = CONN;
        }

#7


引用 4 楼 lovelj2012 的回复:
sqlite error no such table
应该是应用程序没有找到数据库,连接字符串用绝对路径路径

搞定了,把地址从函数里调出来,就可以了,但是,为什么 下面注释掉的那一行又不行呢?这样用绝对路径对真正的数据库有风险,怎么才能用 像 注释那一行那样的方法呢?

        System.Data.SQLite.SQLiteConnection CONN = new System.Data.SQLite.SQLiteConnection();
        System.Data.SQLite.SQLiteConnectionStringBuilder CONNStr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
        System.Data.SQLite.SQLiteCommand CMD = new System.Data.SQLite.SQLiteCommand();
        string DataSource = @"D:\Program Files\快捷栏\KJL_SJK";
        //string DataSource = System.Environment.CurrentDirectory + @"\KJL_SJK"

#8


Environment.CurrentDirectory是启动程序时候的工作路径,不一定是程序所在路径。可以试试System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "KJL_SJK");

#9


引用 8 楼 github_22161131 的回复:
Environment.CurrentDirectory是启动程序时候的工作路径,不一定是程序所在路径。可以试试System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "KJL_SJK");

谢谢各位帮忙,问题通过上面这条语句解决了!

推荐阅读
author-avatar
手机用户2502877953
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有