2014-01-06 30 views
0

基本上,我有一个Windows窗体应用程序,其中包含一个dataGridView,该DataSource是一个名为VoRteXData.mdf的MDF文件。现在,我需要将其部署到外部位置。对于我的表单代码,它包括:将包含MDF文件的项目部署到外部计算机

private void Form1_Load(object sender, EventArgs e) 
    { 
     SqlConnection sqlCon = new SqlConnection(); 
     sqlCon.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Moderator\Documents\VoRteXData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; 
     sqlCon.Open(); 
     SqlDataAdapter sda = new SqlDataAdapter("select * from VoRteXBanTable", sqlCon); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 
     dataGridView1.DataSource = dt; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string searchFilter = textBox1.Text; 

     for (int i = 0; i < dataGridView1.Rows.Count; i++) 
     { 
      if (dataGridView1.Rows[i].Cells[0].Value.ToString() == searchFilter) 
      { 
       dataGridView1.Rows[i].Selected = true; 
       dataGridView1.Rows[i].Visible = true; 
      } 
      else 
      { 
       dataGridView1.CurrentCell = null; 
       dataGridView1.Rows[i].Visible = false; 
       dataGridView1.Rows[i].Selected = false; 
      } 
     } 
    } 
} 

接下来,在我的MDF文件中有一个表和五个字段,大约有50条记录。在将项目发布到外部计算机时,出现错误:“建立到SQL Server的连接时出现网络相关或实例特定的错误。未找到服务器或无法访问服务器。请确认实例名称是否正确并且SQL服务器被配置为允许远程连接“。但是,我没有使用SQL Server Management Studio,因为我需要在没有主机的情况下在外部位置部署它。我不希望用户安装所有的SQL先决条件,因为这太荒谬了。那么有没有办法让C#运行这个MDF文件呢?或者mabye将其免费上传到网络?

回答

1

客户机必须安装SQL Server Express。您可以将它作为先决条件包含在setup.exe中。这只会安装数据库引擎。但是,如果您不希望客户端计算机安装SQL Server Express,则需要将应用程序更改为使用SQL Server Compact。这样它就不需要安装在客户端上的SQL Server实例。

相关问题