如何使用c#windows窗体程序,该程序具有来自未安装SQL Server的另一台机器的数据库?

时间:2017-02-14 06:33:50

标签: c# .net sql-server database winforms

我有一个C#windows窗体应用程序,它可以在我自己的机器上使用Sql Server Express。我已经发布了我的程序与release.exe文件,并包含Script.sql文件,以便拥有该程序的数据库。该程序在我的机器上完美运行,因为我有数据库和SQL服务器。在具有SQL服务器的其他计算机上,也可以正常工作,但该计算机必须首先运行(执行)带有DBMS的Script.sql文件,而不是它的工作原理。

这是我的连接字符串:connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Assessment;Integrated Security=True;

所以问题是:我无法在未安装SQL Server的计算机上使用我的程序。

问题:是否可以在未安装SQL Server和Visual Studio的其他计算机上运行带有数据库的程序?

我听说,如果我将一些.dll文件或.mfd / .ldf文件添加到项目中,则可以在没有SQL Server的情况下运行该程序。

我知道我正在以复杂的方式使用数据库(包括Script.sql并手动运行)因为我是编程的初学者。 对不起,如果我问一个愚蠢的问题......

谢谢!

3 个答案:

答案 0 :(得分:3)

您可以在服务器中托管Web服务,服务器将从数据库中获取数据。您的winform应用程序所要做的只是调用服务方法,它会相应地获取数据。通过这种方式,您无需担心在客户端PC中安装MSSQL。

对于您而言,这个想法可能看起来有点困难,因为您是初学程序员,但这是一个受到广泛关注的架构,您可以开始尝试实现它。

答案 1 :(得分:1)

因此,您尝试在既未安装SQL Express也未安装SQL Standard / Enterprise的计算机上运行应用程序。如果您希望坚持使用Microsoft SQL技术并且希望避免将完整的SQL Express安装程序与您的应用程序一起发布,那么您将需要使用SQL Express LocalDB。以下是指向它的链接:https://msdn.microsoft.com/en-us/library/hh510202.aspx

基本上,它是一个小得多的Express版本(免费,10GB限制等)。您可以使用应用程序的安装程序安装它,也可以在SQL Server可用时首先启动应用程序(如果没有,请安装并使用LocalDB)。它确实有一些限制,可能会成为一个很好的选择:

  • 无法从计算机外部连接到数据库(因此名称为LocalDB)。这样您就不必担心安全问题了。
  • 根据您创建数据库实例的方式,SQL进程将在您的应用停止时自动关闭,而不是继续消耗计算机上的资源。

MSDN文章讨论了开发人员。但是,LocalDB非常适合作为嵌入式数据库的生产用途。

如果这对您来说是一个选项,请不要忘记将此标记为您问题的答案。

答案 2 :(得分:-1)

试试这个

   private void button1_Click(object sender, EventArgs e)
    {
        DataTable dtCPData = new DataTable();
        string sqlconstr = "Data Source=dbhost;Initial Catalog=dbname;Persist Security Info=True;User ID=username;Password=password";

        SqlConnection con = new SqlConnection();
        con.ConnectionString = sqlconstr;
        con.Open();
        SqlCommand cmd = new SqlCommand(@"Select * from Table", con);

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dtCPData);
        con.Close();

    }