Создать DLL для доступа к базе данных c # - PullRequest
0 голосов
/ 16 марта 2012

Было бы разумно использовать Dll для доступа к базе данных при запуске приложения.

Это код, который мне нужно вызывать на каждой странице моего приложения

  SqlConnection myConnection = new SqlConnection();
    myConnection.ConnectionString = "Data Source=CRYSTAL5\\INSTANCE1;Initial Catalog=Pharmacy;Integrated Security=True";
    myConnection.Open(); 

и код dll, который я написал

public  class DBConnect
    {
        public DBConnect()
        {
            Initialize();
        }
        private SqlConnection connection;
        //Constructor


    //Initialize values
    private void Initialize()
    {
        string connectionString;
        connectionString = "Data Source=CRYSTAL5\\INSTANCE1;Initial Catalog=Pharmacy;Integrated Security=True";

        connection = new SqlConnection(connectionString);
    }

Затем я добавил using DBCon; в свое приложение и попытался запустить этот код

DBConnect myConnection = new DBConnect();
        SqlCommand myCommand = new SqlCommand("select doc_fname,doc_lname,gender,department,education ,NMC_no  from ph.doctor_info where unit_id =0", myConnection);

это не сработает.

извините за дерьмовое описание

Наилучшее совпадение перегруженного метода для 'System.Data.SqlClient.SqlCommand.SqlCommand (string, System.Data.SqlClient.SqlConnection)' имеет недопустимые аргументы это ошибка, которую я получаю

Что бы я делал без переполнения стека.

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

DBConnect, похоже, не предоставляет объект SqlConnection.Поэтому вы передаете объект DBConnect в конструктор SqlCommand, а не объект SqlConnection, поэтому возникает ошибка.

1 голос
/ 16 марта 2012

Вы передаете объект типа «DbConnect» в SqlCommand, а не объект SqlConnection.Ваш объект подключения sql содержится в этом классе, в переменной connection.

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

Если вы сделаете соединение общедоступным, вы должны сделать:

SqlCommand myCommand = new SqlCommand("select doc_fname,doc_lname,gender,department,education ,NMC_no  from ph.doctor_info where unit_id =0", myConnection.connection);

EDIT: Также в Initialise вы создали объект SqlConnection, но не назвали Open().Вам нужно будет сделать это, прежде чем пытаться использовать соединение.Либо добавьте connection.Open() в initialise (), либо вызовите myConnection.connection.Open() до вызова SqlCommand.

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