“未处理SQLException” System.Data.dll中发生了类型为'System.Data.SqlClient.SqlException'的未处理异常

时间:2019-09-11 08:46:21

标签: c#

运行该项目时出现错误

  

类型为'System.Data.SqlClient.SqlException'的未处理异常   发生在System.Data.dll

     

其他信息:与网络有关或与实例有关的错误   建立与SQL Server的连接时发生。服务器是   找不到或无法访问。验证实例名称为   正确,并且该SQL Server配置为允许远程连接。   (提供者:命名管道提供者,错误:40-无法打开   连接到SQL Server)

namespace Project.DAL
{

    public static class NativeSqlDb
    {
        public static string ConStr
        {
            get
            {
                return System.Configuration.ConfigurationManager.ConnectionStrings["Project.Properties.Settings.QuestionDbConnectionString"].ConnectionString;
            }
        }

        public static DataTable ExecuteReader(string sql)
        {
            SqlConnection con = new SqlConnection(ConStr);
            SqlCommand cmd = new SqlCommand(sql, con);
            DataTable dt = new DataTable("Dt");
            con.Open();  //Im having error on this part sqlexception was unhandle

            try
            {
                SqlDataReader reader = cmd.ExecuteReader();
                dt.Load(reader);
                reader.Close();
            }
            finally
            {
                con.Close();
            }
            return dt;
        }

        public static int ExecuteNonQuery(string sql)
        {
            SqlConnection con = new SqlConnection(ConStr);
            SqlCommand cmd = new SqlCommand(sql, con);
            con.Open();
            int sayi = 0;
            try
            {
                sayi = cmd.ExecuteNonQuery();
            }
            finally
            {
                con.Close();
            }
            return sayi;
        }

        public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
        {
            SqlConnection con = new SqlConnection(ConStr);
            SqlCommand cmd = new SqlCommand(sql, con);
            con.Open();
            int sayi = 0;
            foreach (SqlParameter p in param)
            {
                cmd.Parameters.Add(p);
            }
            try
            {
                sayi = cmd.ExecuteNonQuery();
            }
            finally
            {
                con.Close();
            }
            return sayi;
        }

        public static object ExecuteScalar(string sql)
        {
            SqlConnection con = new SqlConnection(ConStr);
            SqlCommand cmd = new SqlCommand(sql, con);
            con.Open();
            object o;
            try
            {
                o = cmd.ExecuteScalar();
            }
            finally
            {
                con.Close();
            }
            return o;
        }

    }
}

我已连接到SQL Server,但仍然出现错误。

编辑:断点屏幕截图。

connection string

编辑:

management studio login

management studio login

2 个答案:

答案 0 :(得分:0)

你去了。配置文件中的连接字符串应包含data source=.\sqlexpress而不是USER-PC

<add name="Project.Properties.Settings.QuestionDbConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Project;Integrated Security=true;" providerName="System.Data.SqlClient" />

Management Studio Connection

enter image description here

答案 1 :(得分:-1)

确保连接字符串正确(使用mssqlmanager进行测试)。然后,确保您已正确配置服务器,并确保防火墙也已正确配置。如果服务器是远程服务器,请确保可以首先ping它,以便知道连接有效。如果您在本地运行-请仔细检查所有配置,原因一定是问题所在。

How to enable the named pipes/tcp

How to configure the firewall