Определение функции в одном классе и вызов в другом классе не наследуют элементы управления - PullRequest
0 голосов
/ 03 декабря 2010

Я определил функцию в одном классе как

public static DataSet GetAllPrimaryKeyTables()
{
  //An instance of the connection string is created to manage the contents of the connection string.
  using(var sConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))
  {
    //To Open the connection.
    sConnection.Open();

    //Query to select the table_names that have PRIMARY_KEYS.
    string selectPrimaryKeys = @"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
                                 WHERE CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME <> 'dtProperties'
                                 ORDER BY TABLE_NAME";

    //Create the command object
    using(var sCommand = new SqlCommand(selectPrimaryKeys, sConnection))
    {
      try
      {
        //Create the dataset.
        DataSet dsPrimaryKeyTables = new DataSet("INFORMATION_SCHEMA.TABLE_CONSTRAINTS ");

        //Create the dataadapter object.
        SqlDataAdapter daPrimaryKeyTables = new SqlDataAdapter(selectPrimaryKeys, sConnection);

        //Provides the master mapping between the sourcr table and system.data.datatable
        daPrimaryKeyTables.TableMappings.Add("Table", "INFORMATION_SCHEMA.TABLE_CONSTRAINTS ");

        //Fill the dataadapter.
        daPrimaryKeyTables.Fill(dsPrimaryKeyTables);

        //Bind the result combobox with non primary key table names
        DataViewManager dsvPrimaryKeyTables = dsPrimaryKeyTables.DefaultViewManager;

        return dsPrimaryKeyTables;
      }
      catch(Exception ex)
      {
        //Handles the exception and log that to the EventLog with the original message.
        EventLog log = new EventLog("Application");
        log.Source = "MFDBAnalyser";
        log.WriteEntry(ex.Message);

        return null;
      }
      finally
      {
        //checks whether the connection is still open.
        if(sConnection.State != ConnectionState.Closed)
        {
          sConnection.Close();
        }
      }
    }
  }
}

А теперь, как мне кодировать, чтобы я мог вызывать эту функцию в другом классе в наборе данных по умолчанию.

Будет ли кто-нибудьпожалуйста, помогите мне ??

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Превращение этой функции в Метод расширения для типа DataSet будет единственной вашей проблемой, если я вас понимаю,

0 голосов
/ 03 декабря 2010

Вы будете использовать что-то вроде этого.

Dataset myPrimaryKeyDataset = YourClassName.GetAllPrimaryKeyTables();

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...