日期:2014-05-18  浏览次数:20809 次

C#关于服务的问题
先说一下服务的目的:
当服务开启的时候,定时去对access数据库操作也就是 读写。
项目中 我创建了一个服务,名为NewsService
之前的操作都很正常,只是到操作数据库的时候就出错了,我还是一个一个的打印到文本才知道。

C# code

/// <summary>
        /// 执行查询语句,返回SqlDataReader
        /// </summary>
        /// <param name="strSQL">查询语句</param>
        /// <returns>SqlDataReader</returns>
        public static OleDbDataReader ExecuteReader(string SQLString, params OleDbParameter[] cmdParms)
        {
            NewsService.FileNews.File(connectionString);
            OleDbConnection connection = new OleDbConnection(connectionString);
            OleDbCommand cmd = new OleDbCommand();
            try
            {
                NewsService.FileNews.File("打开数据库链接");
                connection.Open();
                NewsService.FileNews.File("打开数据库链接1");
                PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                NewsService.FileNews.File("打开数据库链接2");
                OleDbDataReader myReader = cmd.ExecuteReader();
                NewsService.FileNews.File("打开数据库链接3");
                cmd.Parameters.Clear();
                return myReader;
            }
            catch (System.Data.OleDb.OleDbException e)
            {
                NewsService.FileNews.File(e.InnerException.ToString());
                throw new Exception(e.Message);
            }
        }


这个是操做数据库的 在文本里只到NewsService.FileNews.File("打开数据库链接");
剩下的就不在做打印。也就是说到这停止了,出错了。但是也没有什么异常
我打印的链接是:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=qw_News.mdb
我在项目加了App.config配置,数据库在这个项目目录下,本人觉得好戏nag是没有找到这个数据库。但是我也不知道是为什么,请高手帮忙解决一下!

------解决方案--------------------
刚才看看以前的代码,在服务中我用的mssql,倒是没用过access数据库,

不过我服务里面用的文件都是绝对路径,没有发生过找不到的情况。

需要的文件其实和服务是在同一路径的,但是我用的还是绝对路径。