Не удалось установить соединение через класс SqlHelper

   string strCon =
           ConfigurationManager.ConnectionStrings["constr"].ConnectionString;


           Company.Common.SqlHelper.Connect = strCon;

Получение этого исключения, кто-то, пожалуйста, помогите

"The type initializer for 'Company.Common.SqlHelper' threw an exception."}

  /// <summary>
/// The SqlHelper class is intended to encapsulate high performance, scalable best practices for 
/// common uses of SqlClient
/// </summary>
public sealed class SqlHelper
{
    public void MessageBox(string message, Control ControlID)
    {

        //tmp = "<script language='javascript'>";
        string tmp = "alert('" + message + "');";
        //tmp += "</script>";
        //ScriptManager.RegisterStartupScript(this, this.GetType(), "tmp", tmp, true); 
        //string CloseWindow;
        //CloseWindow = "alert('Hello World')";
        ScriptManager.RegisterStartupScript(ControlID, ControlID.GetType(), "tmp", tmp, true);
        // Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", tmp);
    }
    public static string Connect = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString.ToString();
    #region private utility methods & constructors

    // Since this class provides only static methods, make the default constructor private to prevent 
    // instances from being created with "new SqlHelper()"
    private SqlHelper() { }

    /// <summary>
    /// This method is used to attach array of SqlParameters to a SqlCommand.
    /// 
    /// This method will assign a value of DbNull to any parameter with a direction of
    /// InputOutput and a value of null.  
    /// 
    /// This behavior will prevent default values from being used, but
    /// this will be the less common case than an intended pure output parameter (derived as InputOutput)
    /// where the user provided no input value.
    /// </summary>
    /// <param name="command">The command to which the parameters will be added</param>
    /// <param name="commandParameters">An array of SqlParameters to be added to command</param>
    private static void AttachParameters(SqlCommand command, SqlParameter[] commandParameters)
    {
        if (command == null) throw new ArgumentNullException("command");
        if (commandParameters != null)
        {
            foreach (SqlParameter p in commandParameters)
            {
                if (p != null)
                {
                    // Check for derived output value with no value assigned
                    if ((p.Direction == ParameterDirection.InputOutput ||
                        p.Direction == ParameterDirection.Input) &&
                        (p.Value == null))
                    {
                        p.Value = DBNull.Value;
                    }
                    command.Parameters.Add(p);
                }
            }
        }
    }

}

2 ответа

Решение

Возможно, проблема в том, что в вашем конфигурационном файле нет строки подключения с именем Constr так как, согласно описанию ошибки, проблема должна быть в этой строке

public static string Connect = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString.ToString();

Единственное, что инициализатор типа для SqlHelper кажется, делает это:

public static string Connect = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString.ToString();

Какое исключение это бросок? Если бы я догадался, вероятно, нет строки подключения под названием Constr в конфигурации. Есть? Можете ли вы показать настройки конфигурации нам? В противном случае, что является исключением?

Обратите внимание, что .ToString() не обязательно на этой линии. ConnectionString это уже строка

Другие вопросы по тегам