2013-12-10 2 views
1

Я разработал приложение, основанное на 7 winform. Моя база данных находится в MS Access. Я хочу создать один общий один класс для строки подключения и использовать его во всех winforms. Таким образом, я могу избежать копирования и вставки строки подключения во всех формах. Я понятия не имею, как это сделать.Как создать класс строки подключения?

+1

Вам не нужен новый класс - вы можете вытащить строку из app.config в каждой форме. [(link)] (http://msdn.microsoft.com/en-us/library/ms254494 (v = vs.110) .aspx) –

ответ

7

Вы можете иметь строка подключения в файле App.Config

<connectionStrings> 
     <add name="MyDBConnection" providerName="System.Data.SqlClient" 
      connectionString="Data Source=localhost;Initial Catalog=YourDB; Integrated Security=true" /> 
    </connectionStrings> 

И тогда вы можете обращаться к нему как:

System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnection"].ConnectionString; 

См: How to: Add an Application Configuration File to a C# Project

+0

Я создал в APP.CONFIG и сделал то, что вы мне сказали. но у меня проблема с доступом к нему. Я имею в виду «System.Configuration.ConfigurationManager.ConnectionStrings [« MyDBConnection »]. ConnectionString;" вся эта линия должна быть синего цвета, но она все еще черная. это означает, что мое приложение не может прочитать эту строку –

+0

@Dany, щелкните правой кнопкой мыши ссылки на проект и добавьте ссылку на System.Configuration. – Habib

+0

ОК ждут. Я пытаюсь это сделать. еще одна вещь, моя база данных - OLEDB, и какие изменения мне нужно сделать в этих кодах? –

0

Вы можете сделать класс с статический член и свойство.

public class Utils 
{ 
    private static string connectionString = "Data Source=localhost;Initial Catalog=YourDB; Integrated Security=true"; 

    public static string ConnectionString 
    { 
     get 
     { 
      return connectionString; 
     } 
     set 
     { 
      connectionString = value; 
     } 
    } 
} 

Тогда вы можете обращаться к нему как:

string connString = Utils.ConnectionString; 
+0

, что дает мне ошибку в приватном статическом соединенииString = ""; он говорит Invalid token '=' в объявлении члена класса, структуры или интерфейса –

+0

@ Dany Я забыл «строку» в этой строке, извините. Обновлен код немного. – ScottK

1

Я обычно использую класс и статический член как @scottk, но я буду заворачивать чек на символ в DEBUG препроцессора, так что я могу переключить к базе данных разработки по отладочным сборкам. Я также использую OleDbConnectionStringBuilder для удобства чтения, даже если он на самом деле является излишеством:

public static class ConnectionStrings 
{ 
    #if DEBUG 
    public static string DBName 
    { 
     get 
     { 
      OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder 
      { 
       DataSource = @"C:\devDB.mdb", 
       Provider = "Microsoft.Jet.Oledb.4.0" 
      }; 

      return builder.ToString(); 
     } 
    } 
    #else 
    public static string DBName 
    { 
     get 
     { 
      OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder 
      { 
       DataSource = @"C:\prodDB.mdb", 
       Provider = "Microsoft.Jet.Oledb.4.0" 
      }; 

      return builder.ToString(); 
     } 
    } 
    #endif 
} 
+0

Хорошая идея проверить режим отладки. Иногда требуется отладка с использованием рабочей таблицы, или, может быть, это несколько тестовых баз данных. Таким образом, предоставление пользователю выбора, какая база данных будет использоваться, если в режиме отладки будет хорошо (например, при регистрации на экране). – ScottK

Смежные вопросы