当我尝试连接数据库时如何修复Visual Studio中与网络相关的错误

时间:2019-09-24 10:12:13

标签: c#

当我尝试在Visual Studio 2010中运行此程序时,显示错误。像这样“在建立与SQL Server的连接时发生与网络有关或特定于实例的错误。找不到服务器或无法访问该服务器。请验证实例名称正确并且SQL Server配置为允许远程连接。( provider:命名管道Provider,错误:40-无法打开与SQL Server的连接)“

public partial class tcregistration : Form
    {
        SqlConnection conn = new SqlConnection("Data Source=./SQLEXPRESS;AttachDbFilename=C:/Users/dce 3/documents/visual studio 2010/Projects/TC_Maker/TC_Maker/TC_REG.mdf;Integrated Security=True;User Instance=True");
        public tcregistration()
        {
            InitializeComponent();
        }

        private void insert_Click(object sender, EventArgs e)
        {
            string gender = string.Empty;
            if (rbmale.Checked)
                {
                    gender = "M";
                }
            else if (rbfemale.Checked)
                {
                    gender = "F";
                }
            string tcrecieved = string.Empty;
            if (rbyes.Checked)
                {
                    tcrecieved = "Y";
                }
            else if (rbno.Checked)
                {
                    tcrecieved = "N";
                }
            try
            {
                if (conn.State == ConnectionState.Closed) 
                    conn.Open();
                    SqlCommand cmd = new SqlCommand ("TCAddorUpdate",conn);
                    cmd.CommandType=CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@mode","Add");
                    cmd.Parameters.AddWithValue("@tcnumber",txttcno.Text.Trim());
                    cmd.Parameters.AddWithValue("@name",txtname.Text.Trim());
                    cmd.Parameters.AddWithValue("@dob",dtpdob);
                    cmd.Parameters.AddWithValue("@religion",txtrelig.Text.Trim());
                    cmd.Parameters.AddWithValue("@caste",txtcaste.Text.Trim());
                    cmd.Parameters.AddWithValue("@sex",gender);
                    cmd.Parameters.AddWithValue("@doa",dtpdoa);
                    cmd.Parameters.AddWithValue("@regno",txtregno.Text.Trim());
                    cmd.Parameters.AddWithValue("@dor",dtpdor);
                    cmd.Parameters.AddWithValue("@dept",txtdept.Text.Trim());
                    cmd.Parameters.AddWithValue("@sem", combosem);
                    cmd.Parameters.AddWithValue("@ifqulify",txtqualified.Text.Trim());
                    cmd.Parameters.AddWithValue("@conduct",txtconduct.Text.Trim());
                    cmd.Parameters.AddWithValue("@applieddate",dtpdoapp);
                    cmd.Parameters.AddWithValue("@ifrecieved",tcrecieved);
                    cmd.Parameters.AddWithValue("@receiveddate",dtpdor);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Data Inserted Successfully");
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message,"Error Message");
            }
            finally
            {
                conn.Close();
            }
        }

    }
}

  

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

1 个答案:

答案 0 :(得分:0)

这不是编程问题,而是一个网络/连接字符串。

连接字符串是它们自己的专业领域,这是普通程序员所无法理解的。幸运的是它有一个页面:https://www.connectionstrings.com/sql-server/

即使在附加时,您也必须提供一个数据库名称:“为什么需要Database参数?如果已经附加了命名数据库,SQL Server不会重新附加它。它将附加的数据库用作默认数据库连接。”

就像其他人提到的那样,您也得到了错误的斜杠。

主题不大,但是异常处理是我的宠儿。而且您有一些严重的错误。就像捕获异常,只暴露消息。那是两个主要的罪过。您是我经常链接的两篇关于主题的文章: