我有一个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并手动运行)因为我是编程的初学者。 对不起,如果我问一个愚蠢的问题......
谢谢!
答案 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)。它确实有一些限制,可能会成为一个很好的选择:
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();
}