当前位置: 首页 > 知识库问答 >
问题:

C#Project-InstallShield,安装后运行MySql时出错

罗心思
2023-03-14

我在Visual Studio 2013中创建了一个C#项目。我想使用Install Shield free版本创建一个安装程序。我创建了一个安装程序,并试图在其他计算机上运行它,但当我运行它并试图登录到该程序时,我遇到了有关mysql数据库的问题。错误消息是:

Unhandled exception has occured in you application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

Cannot connect.

如果我点击详细信息按钮,我有一系列的错误,这是指MySQL。示例:

System.Exception: Cannot connect ---> MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts.
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at simulator.ConnConfig.getConnection()

simulator是项目的名称ConnConfig是一个类,其中是连接,getConnection()是来自ConnConfig的函数,返回连接。我试图在另一台计算机上安装。NET框架4.5。SQL Server,但也不起作用。在我的项目中,我使用localhostserver,其中我有一个包含两个表的数据库。我的问题是,是否有可能将localhost数据库添加到安装程序中,并在另一台计算机上使用它?什么可再发行文件需要这种操作?另外,我已经在电脑上安装了。NET Framework 4.5,Sql Server 2012。。但当我尝试通过可再发行文件将它们添加到InstallShield中时,它总是说需要下载。为什么?

使现代化

我在这节课上做演讲。但我收到错误:附加信息:路径中存在非法字符 在该行:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SQLite;

namespace simulator
{
    class ConnConfig
    {
        private static string conn = "Data Source=c:\aplicatie.db;Version=3;Password=myPassword;";
        public static SQLiteConnection connect = null;

        private ConnConfig()
        {

        }
        public static SQLiteConnection getConnection()
        {
            SQLiteConnection connect = null;
            try
            {
                connect = new SQLiteConnection(conn);
                connect.Open();// here I receive the error
                return connect;
            }
            catch (SQLiteException e)
            {
                throw new Exception("Cannot connect", e);
            }
        }
    }
}

更新3

在那个类中,我连接到数据库。在其他形式中,我只使用表及其数据。为了连接到程序,我使用一个登录表单,它使用这个类来getConnection()。我通过添加ADO创建了该数据库。NET在模拟器项目中的应用。接下来,我在localhost服务器中已经有了这两个表。所以,如果我必须用新表创建另一个空数据库,这是可以的,但是在哪里包含代码或者如何使用它,因为我不知道脚本是如何工作的。。我应该把它放在哪里?


共有3个答案

公孙宇
2023-03-14

可以通过ODBC访问SQLite。

郭翰翮
2023-03-14

我猜您的程序在部署时不会将数据库与安装程序捆绑在一起。这可能是因为您没有在项目文件中将数据库标记为数据文件。尝试此操作,右键单击解决方案资源管理器中的项目名称,然后从菜单中选择“属性”。从水平选项卡中单击“发布”选项卡。在“安装模式和设置”下,单击“应用程序文件”按钮。此时会出现一个对话框,其中包含所有应用程序文件。从相应单元格的下拉列表中将数据库发布状态设置为数据文件。这样,数据库将在发布时与设置捆绑在一起。希望这有帮助。

茅桐
2023-03-14

如果您的数据库要安装在每个客户机上,并且您的表不是很庞大,那么您可能希望看到一些更轻的东西,比如SQLite,它不需要任何安装,只需要DLL,而且非常快速高效,并且只在程序运行时才运行。

至于需要下载的问题,您似乎没有正确设置先决条件,请按照本文中的步骤将InstallShield先决条件、合并模块和对象添加到基本MSI和InstallScript MSI项目中,以纠正此问题

您可能需要考虑确定MySQL是否是适合您的解决方案。

SQLite vs MySQL vs PostgreSQL:关系数据库管理系统的比较

并了解SQLite的局限性

因为老实说,在每个系统上安装MySQL似乎都太过分了。如果网络上有一台带有MySQL的服务器,好的。但在每个系统上,这似乎都是个坏主意。

就连接到SQLite数据库而言,这里是SQLite的连接字符串列表

请参阅本主题,了解如何创建数据库和表创建SQLite数据库和表

 类似资料:
  • 问题内容: 我在win7上安装了xampp并在启动apache时收到此错误。我没有检查Skype,没有任何变化。我如何找到使用端口80的端口?我该如何解决。我没有其他服务器在运行。 以下链接没有帮助我 为什么Apache无法启动XAMPP安装? 这是错误日志 问题答案: 尝试这些方法,它应该可以工作: 退出/退出 Skype (确保其未运行),因为它保留了localhost:80 禁用防病毒(如果

  • 错误的截图,我不知道这是angular/NPM/agora错误,但当我尝试安装angular material或bootstrap时,一切正常,但每当我尝试安装agora,它抛出错误。

  • 安装生成器引擎时出错 数据库错误:使用的表类型不支持FULLTEXT索引 查询:“创建表(int(11)NOT NULL AUTO_INCREMENT,varchar(255)字符集utf8mb4默认值NULL,text默认值NULL,varchar(255)默认值NULL,intachar(255)默认值'、'no'、'hide')默认值'yes'、varchar(255)默认值''、varch

  • 问题内容: 我遵循了可可足的指示。 以下是我的Podfile: 当我执行 Pod安装时 ,出现以下错误: 用Swift编写的Pod只能集成为框架;此功能仍处于测试阶段。添加到您的Podfile或目标以选择使用它。 更新: 以下是我的控制台日志: 问题答案: 添加“ use_frameworks!” 到您的Podfile,因为: 因为Apple不允许您构建包含Swift的静态库。与Objective

  • 我已经安装了Composer,并遵循了Laravel 4文档中的快速入门指南。 我得到以下错误,当我运行或: 我尝试运行以下命令: 或者使用他们的: 或者从git获取zip版本:https://github.com/laravel/laravel?source=c 我仍然无法通过composer进行更新。 我在Mac上的PHP版本是: MAMP上的PHP版本:5.4.10 我在Google/Sta

  • 我已经在我的ubuntu终端上使用命令pip install scapy安装了scapy。我还有Python 2.7。安装了17个。如何在ubuntu终端上运行scapy?我已经尝试运行命令:sudo/斯卡皮。我的目标是使用scapy嗅探数据包并记录数据包的发送和接收时间。