sqlexception未由用户代码处理

时间:2014-10-10 20:19:09

标签: c# sql-server

我尝试加载网页时遇到此错误。任何人都可以建议导致这种情况发生的原因及其解决方法吗?

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接

这是C#代码

string conStr = ConfigurationManager.ConnectionStrings["MSSQLConnectionString"].ConnectionString;

SqlConnection connection = new SqlConnection(conStr);

string strSqlCmd;
string strSqlCmd2;

strSqlCmd = "INSERT INTO User " + "(UserName, UserPwd, email, address, mobileNo, firstname, lastname, dateofBirth, NRIC, gender)";
strSqlCmd += " VALUES (@Username, @Userpwd, @email, @address, @mobileNo, @firstName, @lastName, @DateOfBirth, @nric, @gender)";

strSqlCmd2 = "INSERT INTO Patient " + "(Allergies, Childhoodillness)";
strSqlCmd2 += "VALUES(@allergies, @Childhood_illness)";

//create command and assign the query and connection from the constructor
SqlCommand cmd = new SqlCommand(strSqlCmd, connection);
SqlCommand cmd2 = new SqlCommand(strSqlCmd2, connection);

cmd.Parameters.AddWithValue("@Username", UserName.Text);
cmd.Parameters.AddWithValue("@Userpwd", Password.Text);
cmd.Parameters.AddWithValue("@email", Email.Text);
cmd.Parameters.AddWithValue("@address", Address.Text);
cmd.Parameters.AddWithValue("@mobileNo", MobileNo.Text);
cmd.Parameters.AddWithValue("@firstName", Password.Text);
cmd.Parameters.AddWithValue("@lastName", Password.Text);
cmd.Parameters.AddWithValue("@DateOfBirth", DOB.Text);
cmd.Parameters.AddWithValue("@nric", NRIC.Text);
cmd.Parameters.AddWithValue("@gender", Gender.Text);

cmd2.Parameters.AddWithValue("@allergies", Allergies.Text);
cmd2.Parameters.AddWithValue("@Childhood_illness", ChildhoodIllness.Text);

connection.Open();
cmd.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
connection.Close();

这是web.config代码

<add name="MSSQLConnectionString"
     connectionString="Server=localhost; Database= App_Data\PMS.mdf ; Integrated Security=True"
     providerName="System.Data.SqlClient" />

2 个答案:

答案 0 :(得分:0)

此错误是自解释的,这意味着您的连接字符串出错。您可能会找到错误的服务器名称或无效的数据库名称。此外,如果所有这些都没问题,您可以查看配置管理器并检查SQL Server是否已准备好接受远程请求。 (这仅用于远程连接。)

您可以在以下网址中获得有关连接字符串的有用提示: http://www.connectionstrings.com/

答案 1 :(得分:0)

这是本地MDF数据库的错误连接字符串。尝试类似的事情;

<add name="MSSQLConnectionString"
 connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|PMS.mdf;Integrated Security=True;"
 providerName="System.Data.SqlClient" />

<add name="MSSQLConnectionString"
 connectionString="Data Source=.\MSSQLSERVER;AttachDbFilename=|DataDirectory|PMS.mdf;Integrated Security=True;"
 providerName="System.Data.SqlClient" />

或您已安装的任何其他实例。