我开发了一个应用程序,它有一个显示来自a的一些数据的滑块 SQL数据库。我正在使用Visual Studio 2010和Microsoft SQL Server 2008。
事实上,当我在我的个人计算机上部署它时,我的应用程序没有遇到任何问题。 当我在另一台机器上尝试它时出现问题,问题是应用程序无法连接SQL数据库。我试图找出问题的原因,所以我在两台机器上部署之后尝试了它,其中一台机器上安装了SQL服务器,另一台没有SQL Server。 该应用程序在安装了SQL Server的计算机上运行良好,并且无法连接到另一台计算机上的数据库。
这是我在我的应用程序>>
中使用的连接字符串的connectionString =“数据 源= \ SQLEXPRESS; AttachDbFilename = | DataDirectory目录| \ KBank.mdf;集成 安全性=真;用户实例=真“
所以,如果有一种方法可以让我运行应用程序而不需要机器安装SQL Server,我将不胜感激。感谢
答案 0 :(得分:3)
您需要更改连接字符串以指定安装数据库的计算机。如下所示:
connectionString =“Data Source = machine \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ KBank.mdf; Integrated Security = True; User Instance = True”
请注意:其他计算机上的数据库需要正确配置,以便可以从其他计算机访问。
答案 1 :(得分:1)
您的连接字符串使用的是localhost,它通过连接字符串中的.
表示。如果计算机没有安装SQL Server,则此操作无效,因此您需要将连接字符串更改为远程计算机(具有SQL Server安装的计算机,即您的个人计算机)。
答案 2 :(得分:1)
如果您不想安装SQL Server Express,可以通过sql server compact(http://en.wikipedia.org/wiki/SQL_Server_Compact)获取嵌入式SQL服务器,或者拥有实际的网络数据库可用。
答案 3 :(得分:1)
您需要执行以下操作之一:
您可以采用其他数据访问策略,例如将数据序列化为XML,或使用其他数据库(如SQLite或使用Web服务),但简单地说,如果未安装SQL Server Express,你客户的机器,你不能强迫它工作。
答案 4 :(得分:0)
如果在服务器计算机中使用centerl数据库安装,则其他所有客户端计算机都可以访问该服务器。
如果是,你可以采取以下方式:
首先更改程序,在程序启动时将文件DSN写入硬盘
使用以下代码作为示例
private void MakeDSN()
{
try
{
if (!System.IO.Directory.Exists(@"C:\OTPub"))
{
System.IO.Directory.CreateDirectory(@"C:\OTPub");
}
if (File.Exists(@"C:\OTPub\Ot.dsn")) //delete ErrorLogFile
{
File.SetAttributes(@"C:\OTPub\Ot.dsn", FileAttributes.Temporary);
File.Delete(@"C:\OTPub\Ot.dsn");
}
string con = "[ODBC]";
string driver = "DRIVER=SQL Server";
string uid = "UID=sa";
string DB = "DATABASE=OTData";
string server = "SERVER=10.63.210.111";
var tw = new StreamWriter(@"C:\OTPub\Ot.dsn", true); // make file in location
using (tw)
{
tw.WriteLine(con); //write dataline
tw.WriteLine(driver);
tw.WriteLine(uid);
tw.WriteLine(DB);
tw.WriteLine(server);
}
lbserver.Text="LOGIN "+server;
}
catch (Exception)
{
MessageBox.Show("File DSN Error!");
}
}
输入您的服务器Ip为string server
现在您可以在单独的类中使用连接
using System.Data.Odbc;
class DataBaseConnection
{
private OdbcConnection conn1 = new OdbcConnection(@"FILEDSN=C:/OTPub/Ot.dsn;" + "Uid=sa;" + "Pwd=123;");
//insert,update,delete
public int SetData(string query)
{
try
{
conn1.Open();
OdbcCommand command = new OdbcCommand(query, conn1);
int rs = command.ExecuteNonQuery();
conn1.Close();
return rs;
}
catch (Exception ex)
{
conn1.Close();
throw ex;
}
}
//select
public System.Data.DataTable GetData(string sql)
{
try
{
conn1.Open();
OdbcDataAdapter adpt = new OdbcDataAdapter(sql, conn1);
DataTable dt = new DataTable();
adpt.Fill(dt);
conn1.Close();
return dt;
}
catch (Exception ex)
{
conn1.Close();
throw ex;
}
}
}
现在,您可以编写以下代码来连接数据库所需的不同位置,
DataBaseConnection db = new DataBaseConnection();
如果您需要SELECT查询:
DataTable dt = db.GetData("SELECT * From TestTable");
如果您需要插入,更新,删除查询
int i=db.SetData("INSERT INTO TestTable(name,address,tel) VALUES (testname,Colombo,0777125896) ");
此方法可以使用连接到数据库而无需任何配置。
重要提示:出于安全目的,请在退出应用程序时记住删除DSN文件。
希望这会对你有帮助!