尝试打开()sql server时出错

Dan*_*ies 2 .net c# sql-server wcf sqlconnection

我是网络开发的新手,并且通过浏览论坛,我已经成功完成了很多问题.

看来,我遇到的问题是其他一些问题,我发现它们都是不同的,只是没有为我的生活能够解决它.

我试图将播放器注册详细信息插入到数据库中,但是当我尝试调用wcf服务器时,我遇到了conn.Open()上的异常类型:

System.Data.dll中出现"System.Data.SqlClient.SqlException"类型的异常,但未在用户代码中处理.

另外我使用构建它的sql server并且使用的连接字符串是数据库中的属性.我不太清楚如何继续.

public string playerRegistration(playerDetails playerInfo)
{            
    string Message;
    using (SqlConnection conn = new SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\\Users\\Daniel\\documents\\visual studio 2013\\Projects\\Prac4\\WebApplication1\\App_Data\\ADODatabase.mdf;Integrated Security=True"))
    {
        conn.Open();

        using (var cmd = new SqlCommand("INSERT into Player(pid, pfname, plname, pphone, paddress, pdob) VALUES (@pid, @pfname, @plname, @pphone, @paddress, @pdob)", conn))
        {
            cmd.Parameters.AddWithValue("@pid", playerInfo.Pid);
            cmd.Parameters.AddWithValue("@pfname", playerInfo.Pfname);
            cmd.Parameters.AddWithValue("@plname", playerInfo.Plname);
            cmd.Parameters.AddWithValue("@pphone", playerInfo.Pphone);
            cmd.Parameters.AddWithValue("@paddress", playerInfo.Paddress);
            cmd.Parameters.AddWithValue("@pdob", playerInfo.Pdob);

            int result = cmd.ExecuteNonQuery();
            if (result == 1)
            {
                Message = " Details inserted successfully";
            }
            else
            {
                Message = " Details not inserted successfully";
            }
            conn.Close();
            return Message;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*740 5

确保使用@".."(逐字字符串文字)连接字符串,以避免简单的转义错误.

显示的代码"..\v.."包含一个垂直制表符转义符,它会生成无效的连接字符串.没有编译器错误,因为尽管结果字符串不正确,但字符串文字在语法上有效的.

建议使用逐字字符串文字修复并消除双斜杠:

@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\Users\Daniel.."
Run Code Online (Sandbox Code Playgroud)

替代修复(注意\\v):

"Data Source=(LocalDB)\\v11.0;AttachDbFilename=c:\\Users\\Daniel.."
Run Code Online (Sandbox Code Playgroud)