App.Config не работает - PullRequest
       1

App.Config не работает

0 голосов
/ 24 ноября 2010

Когда я делаю свою программу жестко запрограммированной для подключения к базе данных, она работает нормально, но когда я обращаюсь к файлу aap.config ... Я не подключаюсь к базе данных.

В моем файле app.config у меня есть

<add key="ConnectionString" 
     value="Server=192.168.10.3;DataBase=GoalPlanNew;User Id=gp;Password=gp"/>

Когда я делаю код жестко закодированным, я подключаюсь вот так

public void BindDBDropDown()
{
   SqlConnection sConnection = new SqlConnection("Server=192.168.10.3;DataBase=GoalPlanNew;User Id=gp;Password=gp");

   //To Open the connection.
   sConnection.Open();

   string selectDatabase = @"SELECT NAME FROM master..sysdatabases";

   SqlCommand sCommand = new SqlCommand(selectDatabase, sConnection);

   try
   {
       DataSet dsListOfDatabases = new DataSet("master..sysdatabases");
       SqlDataAdapter da = new SqlDataAdapter(selectDatabase, sConnection);
       da.TableMappings.Add("Table", "master..sysdatabases");
       da.Fill(dsListOfDatabases);

       DataViewManager dsv = dsListOfDatabases.DefaultViewManager;
       cmbDatabases.DataSource = dsListOfDatabases.Tables["master..sysdatabases"];
       cmbDatabases.DisplayMember = "NAME";
       cmbDatabases.ValueMember = ("");
    }
    catch (Exception ex)
    {
       //All the exceptions are handled and written in the EventLog.
       EventLog log = new EventLog("Application");
       log.Source = "MFDBAnalyser";
       log.WriteEntry(ex.Message);
    }
    finally
    {
       if (sConnection.State != ConnectionState.Closed) 
       {
          sConnection.Close();
       }
    }
 }

но когда я использую

public static DataSet GetPrimaryKeyTables()
{
    SqlConnection sConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    string selectPrimaryKeys;
    //Opens the connection
    sConnection.Open();
    selectPrimaryKeys = @"SELECT [TABLE_NAME]
                          FROM [INFORMATION_SCHEMA.TABLE_CONSTRAINTS]
                          WHERE [CONSTRAINT_TYPE = 'PRIMARY KEY']
                          ORDER BY  [TABLE_NAME]";

    SqlCommand sCommand = new SqlCommand(selectPrimaryKeys, sConnection);

    try
    {
        DataSet dtPrimaryKeysTables = new DataSet("INFORMATION_SCHEMA.TABLE_CONSTRAINTS");
        SqlDataAdapter da = new SqlDataAdapter(selectPrimaryKeys, sConnection);
        da.TableMappings.Add("Table", "INFORMATION_SCHEMA.TABLE_CONSTRAINTS");
        da.Fill(dtPrimaryKeysTables);

        DataViewManager dsva = dtPrimaryKeysTables.DefaultViewManager;
        return dtPrimaryKeysTables;
     }
     catch (Exception ex)
     {
         //All the exceptions are handled and written in the EventLog.
         EventLog log = new EventLog("Application");
         log.Source = "MFDBAnalyser";
         log.WriteEntry(ex.Message);
         return null;
      }
      finally
      {
         //To close the connection
         if (sConnection != null)
         {
            sConnection.Close();
         }
      }
  }

Я не подключен к базе данных.

Можете ли вы, ребята, PLZ решить проблему ... Я пытался сто раз

Ответы [ 4 ]

2 голосов
/ 24 ноября 2010

Пожалуйста, напишите приведенный ниже код в файле app.config.

<Configuration>
    <connectionStrings>
        <add name="AppName" connectionString="Connectionstring Name" />
    </connectionStrings>
</Configuration>

Пожалуйста, напишите приведенный ниже код в файле .cs.Этот файл класса является общим для всех.

public string connection()
        {
          return System.Configuration.ConfigurationManager.ConnectionStrings["AppName"].ToString(); 
        }
0 голосов
/ 24 ноября 2010

Сначала ваш app.config должен выглядеть следующим образом:

<connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=192.168.10.3;Initial    Catalog=GoalPlanNew;User Id=gp;Password=gp;" providerName="System.Data.SqlClient"/>
</connectionStrings>

Затем добавьте ссылку на пространство имен System.Configuration.

Затем измените код:

public static DataSet GetPrimaryKeyTables()
    {
        string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

        SqlConnection sConnection = new SqlConnection(connectionString);

        string selectPrimaryKeys;

        //Opens the connection      
        sConnection.Open();
        selectPrimaryKeys = @"SELECT [TABLE_NAME]
        FROM      [INFORMATION_SCHEMA.TABLE_CONSTRAINTS]
        WHERE     [CONSTRAINT_TYPE = 'PRIMARY KEY']
        ORDER BY  [TABLE_NAME]";

        SqlCommand sCommand = new SqlCommand(selectPrimaryKeys, sConnection);

        try
        {
            DataSet dtPrimaryKeysTables = new DataSet("INFORMATION_SCHEMA.TABLE_CONSTRAINTS");
            SqlDataAdapter da = new SqlDataAdapter(selectPrimaryKeys, sConnection);
            da.TableMappings.Add("Table", "INFORMATION_SCHEMA.TABLE_CONSTRAINTS");
            da.Fill(dtPrimaryKeysTables);

            DataViewManager dsva = dtPrimaryKeysTables.DefaultViewManager;
            return dtPrimaryKeysTables;
        }
        catch (Exception ex)
        {
            //All the exceptions are handled and written in the EventLog.
            EventLog log = new EventLog("Application");
            log.Source = "MFDBAnalyser";
            log.WriteEntry(ex.Message);
            return null;
        }
        finally
        {
            //To close the connection
            if (sConnection != null)
            {
                sConnection.Close();
            }
        }

    }
0 голосов
/ 24 ноября 2010

Вы должны использовать ConfigurationManager.AppSettings[""] вместо ConfigurationSettings.AppSettings["ConnectionString"])

Настройки конфигурации устарели в настоящее время.

0 голосов
/ 24 ноября 2010

Способ добавления строки подключения кажется неправильным.Вы должны сделать это следующим образом:

  <connectionStrings>
    <add name="MyConnection" connectionString="Server=192.168.10.3;DataBase=GoalPlanNew;User Id=gp;Password=gp" providerName="System.Data...."/>
  </connectionStrings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...