【问题标题】:How to input data into SQL Server for first time start of C# application首次启动 C# 应用程序时如何将数据输入 SQL Server
【发布时间】:2012-11-26 20:57:06
【问题描述】:

我使用 SQL Server 2008 Express 创建了一个 C# 程序。

有些数据最初必须存在于数据库表中,C# 应用程序才能正确运行。

我想在 C# 应用程序第一次执行时将此数据传输到表中。

但我不想从我的 C# 代码中读取这些 SQL 数据(记录数据)(我不想从硬编码的 C# 代码中加载这些数据)。

SQL Server 如何存储它的记录数据,以及如何将初始数据传输到数据库中?

【问题讨论】:

  • 你的意思是什么,当你输入任何东西或按下任何按钮时,数据应该记录在数据库中?
  • 我的意思是,在我的应用程序第一次运行时,sql 表填充了数据(记录)。因为这些数据必须存在才能运行应用程序。
  • 所以这意味着当你运行应用程序时,所有的 sql 数据都应该出现,对吧?
  • @Mehdi Radi 您是否要进行部署?您是否确定客户端将有 sql server,并附加数据库?
  • 首次运行应用程序时。 sql数据库也有create和tables create。但所有表都是空的而且我的 c# 应用程序需要一些 sql 数据才能工作。我的问题是我不知道我的 sql 数据是从哪里读取的(抱歉英语不好)

标签: c# data-transfer sql-server-2008-express


【解决方案1】:

我会尽量不依赖现有的数据库来让您的应用程序正常工作。您将自己与数据库耦合,这可能不是一个好主意。你认为也许你可以从你的应用程序中执行一个存储过程来填写你所依赖的表吗?这样您的数据库创建代码就不会存在于您的应用程序中。然而,这仍然意味着您的应用程序依赖于数据库才能正常运行。

我会推荐两个计划之一,后者更清洁。

计划一

  • 创建一个 SQL 脚本,该脚本将创建并插入应用程序工作所需的所有数据,并将其放入存储过程中
  • 当您的应用程序第一次启动时,它会检查配置文件以查看程序之前是否运行过,如果没有,则执行存储过程以创建所需的数据
  • 更改一个外部配置文件(可能受密码保护),该文件将指示存储过程是否已运行,可以只是一个简单的布尔值
  • 应用程序在每次后续运行时都会检查它之前是否运行过,如果有则不会执行存储过程

计划 2

  • 创建一个 SQL 脚本,该脚本将创建并插入应用程序工作所需的所有数据,并将其放入存储过程中
  • 使用安装程序通过自定义操作部署应用程序以创建数据库,explained here

【讨论】:

    【解决方案2】:

    您肯定需要在某处至少部分硬编码 SQL 插入/创建脚本。在位于应用程序目录中的 SQL 脚本中(不推荐,因为用户可能会篡改它)或在应用程序的资源中(更安全一点,因为用户需要对 EXE 或 DLL 进行十六进制编辑)。

    试过了吗? http://social.msdn.microsoft.com/Forums/en/adodotnetdataproviders/thread/43e8bc3a-1132-453b-b950-09427e970f31

    【讨论】:

      【解决方案3】:

      我认为您的问题很简单,您想在运行程序之前填写表格。 简单地说,您可以打开 sql server managment studio 并连接您的实例名称,然后展开数据库列表并找到您创建的数据库。展开它并在表树中找到您要向其添加数据的表。右键单击它并进行编辑

      Redgate 也有一个产品来填充表格,称为数据生成器,它可以用大量数据填充表格

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多