C# - 无法使用SQLServer连接到我的本地数据库

时间:2015-05-04 14:40:27

标签: c# sql-server connection local

我是C#的新手,我正在尝试将我的应用程序连接到数据库,所以我尝试了这个:

public ActionResult ConnexionBD(){

        SqlConnection cnx;
        cnx = new SqlConnection("Data Source=C:\\Users\\Antoine\\Documents\\Visual Studio 2012\\Projects\\Application\\Application\\App_Data\\Database1.sdf;Initial Catalog=tstado;Integrated Security=True;Pooling=False");
        cnx.Open();
        SqlCommand cmd;
        cmd = new SqlCommand();
        cmd.CommandText="INSERT INTO Objet VALUES(1,'F',"+DateTime.Now+",'Moi')";
        cmd.CommandType = CommandType.Text;
        cmd.Connection = cnx;

        cmd = new SqlCommand();
        cmd.CommandText = "SELECT * FROM Objet";
        cmd.CommandType = CommandType.Text;
        cmd.Connection = cnx;
        SqlDataReader r;
        r = cmd.ExecuteReader();
        String chaine="";
        while (r.Read())
        {
            string nom = (string)r["Nom"];
            string date = (string)r["Date"];
            string user = (string)r["User"];

            chaine+=nom+"\t"+date+"\t"+user+"\n";
        }
        cnx.Close();
        return View(chaine);
    }

第4行突破: cnx.Open(); 。 该错误表示由于网络原因,网络无法访问或无法访问。 (法语中的确切错误:“Uneerreurliéeauréseauouspécifiqueàl'instos'est produite lorsdel'établissementd'uneconnexionàSQLServer.Le serveur est introuvable ou n'pas pasaccessible.Vérifiezquele nom de l'instance est correct et que SQL Serverestconfigurépourautoriser les connexions distantes。“)

英文翻译;

  

发生与网络或特定于实例相关的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接

我认为字符串连接可能有误,但我不确定。

如果有人可以帮助我..!

2 个答案:

答案 0 :(得分:0)

在解决方案资源管理器中,您应该将Db文件的属性“复制到输出目录”标记为“始终复制”(或“如果更新”,具体取决于您的需要),以便将其复制到调试器可以访问的BIN文件夹中。在您的连接字符串中,您只需要简单地放入Database1.sdf

答案 1 :(得分:0)

由于您使用的是本地数据库(.sdf),因此您需要引用System.Data.SqlServerCe(在Add Reference> Extensions中找到)并相应地更改您的代码(见下文)。

public ActionResult ConnexionBD()
    {
        SqlCeConnection cnx = new SqlCeConnection(@"Data Source=C:\Users\Antoine\Documents\Visual Studio 2012\Projects\Application\Application\App_Data\Database1.sdf");
        cnx.Open();
        SqlCeCommand cmd = new SqlCeCommand
        {
            CommandText = "INSERT INTO Objet VALUES(1,'F'," + DateTime.Now + ",'Moi'",
            CommandType = CommandType.Text,
            Connection = cnx
        };

        cmd = new SqlCeCommand {CommandText = "SELECT * FROM Objet", CommandType = CommandType.Text, Connection = cnx};
        SqlCeDataReader r = cmd.ExecuteReader();
        String chaine = "";
        while (r.Read())
        {
            string nom = (string)r["Nom"];
            string date = (string)r["Date"];
            string user = (string)r["User"];

            chaine += nom + "\t" + date + "\t" + user + "\n";
        }
        cnx.Close();
        return View(chaine);
    }