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

C# - Can't connect to my local DB, using SQLServer

我是 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();。 该错误表示由于网络原因,网络无法找到或无法访问。 (法语中的确切错误:"Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes.")

英文翻译;

An error related to the network or instance-specific occurred when establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections

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

如果有人能帮助我..!

在您的解决方案资源管理器中,您应该将 Db 文件的 属性 "Copy to Output Directory" 标记为 "copy always"(或 "if newer",具体取决于您的需要),以便将其复制到您的 BIN 文件夹您的调试器可以访问的位置。在您的连接字符串中,您只需输入 Database1.sdf

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

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);
    }