Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQlite using语句提供无法加载DLL';SQLite.Interop.dll';在另一台计算机上出错_C#_Database_Sqlite_Using_Using Statement - Fatal编程技术网

C# SQlite using语句提供无法加载DLL';SQLite.Interop.dll';在另一台计算机上出错

C# SQlite using语句提供无法加载DLL';SQLite.Interop.dll';在另一台计算机上出错,c#,database,sqlite,using,using-statement,C#,Database,Sqlite,Using,Using Statement,这是我为数据库连接编写的代码: private static void OnTimedEvent(Object source, ElapsedEventArgs e) { using (SQLiteConnection con = new SQLiteConnection(connectionString)) { try { con.Op

这是我为数据库连接编写的代码:

private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{                       
        using (SQLiteConnection con = new SQLiteConnection(connectionString)) 
        {
            try
            {
                con.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            if (con.State == System.Data.ConnectionState.Open)
            {
                Console.WriteLine("Database Opened");

                ushort[] writeData = new ushort[10];
                writeData = parseList(byteList);

                if (writeData != errorBytes)
                {
                    writeToDb(con, writeData);
                }

                else
                {
                    Console.WriteLine("Error Bytes returned! BROKEN DATA!!!");
                }

                //con.Close();
            }

            else
            { 
                Console.WriteLine("Can't open the database!");
            }
        }
    }`

当我在我编写代码的计算机上运行程序时,它可以正常工作并打开数据库。但是,当我在另一台计算机上运行我的程序时,代码不会使用语句进入
,并给出异常
SQLite.Interop.dll
。我将
System.Data.SQLite.dll
添加到项目的引用中。我在另一台计算机上也有这个dll文件。我是否需要向其他计算机添加任何内容以使该程序正常工作?

尝试检查连接字符串、SQLite文件的位置,。。也许您正试图在不允许您的程序在另一台计算机上写入的地方创建它。如果存在差异,请尝试以管理员身份运行应用程序。我唯一想到的是,它在创建连接时崩溃,因此不会进入using语句。

我发现问题出在SQLite DLL上。当我从NuGet Package Manager安装System.Data.SQLite库并将平台目标设置为x86时,问题得到了解决。虽然在我提出这个问题之前,平台目标是x86,但从NuGet Package Manager重新安装库解决了我的问题。在此之前,我使用从下载的DLL作为我的项目的参考。

什么是不工作?您在其他计算机中收到任何异常或错误消息?你说它不使用语句是什么意思?你能试着捕捉所有这段代码以获得有关该代码的信息吗?它只是跳过了以using语句开头的部分。也不例外。但是现在我注意到没有try-and-catch语句来捕获异常。我将添加try-and-catch语句,并在此处写入错误信息。谢谢以
using
开头的部分是整个方法……您确定调用了
OnTimedEvent
吗?是的,当我在使用它编写的语句之前向控制台写入某些内容时,它会起作用。但若试图在using语句中写入某些内容,它不会向控制台写入任何内容。