如何在运行时动态构建SQL连接字符串?

时间:2015-07-15 18:04:51

标签: sql sql-server

我在运行时将.mdf文件上传到应用程序,当我上传文件时,我在上传完成后创建一个SQL连接字符串,这样我就可以将它保存到我的数据库中,然后我就试试了连接到我之前上传的mdf文件,但我有很多错误(取决于我尝试的连接字符串)。

这是我尝试过的连接:

string sqlConn= @"Data Source=localhost;AttachDbFilename=" + destPath + ";Integrated Security=True;Connect Timeout=30";

string cadena =@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + destPath + ";Integrated Security=True;Connect Timeout=30; User Instance=True";

string cadena = "Server=.\SQLExpress;AttachDbFilename=" +  sqlPath +";Database=" + dbName + ";Trusted_Connection = Yes;"

destPath是.mdf存储和定位到我的服务器(pc)的路由,接下来我保存" sqlConn"到我自己的数据库,然后我尝试连接以从上传的数据库中获取一些数据,我不知道我是否错误地尝试使用" localhost"作为服务器但我没有别的想法。

以下是代码:

var q = (from sql in bd.C_SQL
         where sql.id_empresa == idEmp && sql.Periodo == mes && sql.Status == 1
         select sql.sql_string).FirstOrDefault();

        string cuentas = "select cu.Codigo as 'Codigo', cu.Nombre as 'Descripcion', SUM(po.Abonos) as 'Monto' from Cuentas cu inner join MovimientosPoliza mp on cu.Id = mp.IdCuenta inner join Polizas po on mp.IdPoliza = po.Id where cu.Codigo like '" + opcion +"%' and mp.Ejercicio = 2015 and mp.Periodo = " + mes + " group by cu.Codigo, cu.Nombre";
        int x = 0;
        using(SqlConnection conn = new SqlConnection())
        {
            conn.ConnectionString = q;
            conn.Open();

            SqlCommand query = new SqlCommand("cuentas ", conn);
            using(SqlDataReader reader = query.ExecuteReader())
            {
                while(reader.Read())
                {
                    x++;
                }
            }
        }

Open()上的一切都失败了。 1.-错误:存在同名文件,无法访问文件,它位于UNC共享位置。 2.-错误:用户登录失败。

有任何帮助吗?请

1 个答案:

答案 0 :(得分:1)

答案非常简单,DataSource不能成为"。\ SQLEXPRESS"因为上传的mdf存储在App_Data文件夹中,所以我只修改为:

string cadena = @"Server=(localdb)\v11.0;AttachDbFilename=" + destPath + ";Database=" + nombreBd + ";Trusted_Connection = Yes;";

eveything工作得很好