Sql server 如何制作能够保持数据库完整性和正确性的软件?

Sql server 如何制作能够保持数据库完整性和正确性的软件?,sql-server,database,visual-studio-2008,deployment,Sql Server,Database,Visual Studio 2008,Deployment,我在VisualStudio2008 C#中制作了一个应用程序项目,它是VisualStudio2008中的SQL Server 数据库有20个表,每个表中有许多字段 我制作了一个界面,用于根据用户预定义的需求添加、删除、编辑和检索数据 现在我必须 将项目制作成我可以交付给教授的软件。也就是说,他只需双击图标,软件即可启动。启动调试不需要Visual Studio 2008 数据库将在一台功能强大的计算机(双核最新Windows XP)上,用户将从另一台使用LAN连接的计算机上访问它。每当服务器

我在VisualStudio2008 C#中制作了一个应用程序项目,它是VisualStudio2008中的SQL Server

数据库有20个表,每个表中有许多字段

我制作了一个界面,用于根据用户预定义的需求添加、删除、编辑和检索数据

现在我必须

  • 将项目制作成我可以交付给教授的软件。也就是说,他只需双击图标,软件即可启动。启动调试不需要Visual Studio 2008

  • 数据库将在一台功能强大的计算机(双核最新Windows XP)上,用户将从另一台使用LAN连接的计算机上访问它。每当服务器发生更改时,我都可以使用Visual Studio 2008/debugger将连接字符串更改为共享数据库,但当它是软件时,我该如何做呢

  • 会有很多客户。我应该给每个人都提供相同的软件,这样他们都可以连接到数据库吗?如何维护数据库的完整性和正确性?我的意思是db.mdf文件将位于一个文件夹中,该文件夹将通过读写访问权限共享。所以一次只写一个用户是没有必要的。那么这个或那个有编码吗

  • 编写一个安装程序,将可执行文件和支持DLL复制到用户计算机上。我相信有一个安装项目可以在VisualStudio2008中使用
  • 2) 您应该使用Windows 2000 server,Windows XP限制连接数。从注册表读取连接字符串,并提供设置对话框以更改连接

    3) 不要使用MS access,您应该使用真正的SQL Server来处理并发用户访问。(SQL Server、MySQL、PostgreSQL、Oracle等)您需要使用SQL重写数据库访问层,以避免损坏数据

    甚至不要考虑按原样部署此项目,否则您将陷入维护噩梦。有没有经验丰富的开发人员,甚至你的教授可以向你寻求帮助?要制作一个功能性应用程序,这里有很多工作要做

  • 编写一个安装程序,将可执行文件和支持DLL复制到用户计算机上。我相信有一个安装项目可以在VisualStudio2008中使用
  • 2) 您应该使用Windows 2000 server,Windows XP限制连接数。从注册表读取连接字符串,并提供设置对话框以更改连接

    3) 不要使用MS access,您应该使用真正的SQL Server来处理并发用户访问。(SQL Server、MySQL、PostgreSQL、Oracle等)您需要使用SQL重写数据库访问层,以避免损坏数据

    甚至不要考虑按原样部署此项目,否则您将陷入维护噩梦。有没有经验丰富的开发人员,甚至你的教授可以向你寻求帮助?要制作一个功能强大的应用程序,这里有很多工作要做。

    1)一个选项是使用Installshield打包和部署应用程序

    2) 让应用程序从应用程序配置中提取连接字符串。我已经看到(并做到了)这一点,因为有一个带有常规配置设置(如数据库连接字符串)的XML文件,该文件位于文件系统中,与可执行文件位于同一目录中,并在可执行文件启动时读取

    3) 通常,SQL Server将处理大多数并发数据读/写,并保持数据的完整性(只要您的表结构合理)

    由于您将要将此应用程序部署到多台计算机上,因此听起来您可以在X台计算机上安装应用程序客户端,它们将访问数据库计算机上的SQL Server数据库。如果采用这种方法,则不需要共享db.mdf文件,因为它只需要由应用程序访问的SQL Server访问

    我希望这会有所帮助。

    1)一个选择是使用Installshield打包和部署应用程序

    2) 让应用程序从应用程序配置中提取连接字符串。我已经看到(并做到了)这一点,因为有一个带有常规配置设置(如数据库连接字符串)的XML文件,该文件位于文件系统中,与可执行文件位于同一目录中,并在可执行文件启动时读取

    3) 通常,SQL Server将处理大多数并发数据读/写,并保持数据的完整性(只要您的表结构合理)

    由于您将要将此应用程序部署到多台计算机上,因此听起来您可以在X台计算机上安装应用程序客户端,它们将访问数据库计算机上的SQL Server数据库。如果采用这种方法,则不需要共享db.mdf文件,因为它只需要由应用程序访问的SQL Server访问


    我希望这会有所帮助。

    维护数据完整性的最佳方法是将其设计到数据库中:

    • 您需要正式设计的主键

    • 您需要正式定义主键/外键关系(并为这些外键编制索引;它们不会自动编制索引)

    • 如果使用代理关键点,则自然关键点上需要唯一约束

    • 对于不能为null的字段,您需要默认值,并且表定义中是否需要允许为null

    • 您需要数据类型的正确数据类型(例如,不要将日期存储为varchar数据类型)

    • 如果对某些字段的值有特定的约束,则需要在数据库或应用程序中强制执行这些约束


    保持数据完整性的最佳方法是将其设计到数据库中:

    • 您需要正式使用desi的主键
      private Method(SqlConnection connection)
      {
          using (SqlTransaction transaction = connection.BeginTransaction())
          {
              try
              {
                  // Use the connection here
                  ....
      
                  transaction.Commit();
              } 
              catch
              {
                  transaction.Rollback();
                  throw;
              }
          }
      }
      
      private Method(SqlConnection connection)
      {
          using (SqlTransaction transaction = connection.BeginTransaction())
          {
              // Use the connection here
              ....
      
              transaction.Commit();
          }
      }