2015-06-16 4 views
1

Я пытаюсь разработать программу, которая будет подключаться к базе данных Progress (9.1E) с использованием C# (Visual Studio 2010 Ultimate), но сначала мне нужно получить строку подключения к Progress База данных из программы C#.C# для подключения к базе данных прогресса

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

private void downloadData_Click(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     string connectString = "DSN = QADDB; Host = ipaddress; DB = dbname; UID = user; PWD = password;"; 
     IDbConnection dbConn = new OdbcConnection(connectString); 
     dbConn.Open(); 
     IDbCommand dbCommand = dbConn.CreateCommand(); 
     string sqlstr = "SELECT pt_part FROM pt_mstr"; 
     dbCommand.CommandText = sqlstr; 
     IDataReader reader = dbCommand.ExecuteReader(); 
     while (reader.Read()) 
     { 
      string part = (string)reader["pt_part"]; 
      gridview.Items.Add(part); 
     } 
     reader.Close(); 
     reader = null; 
     dbCommand.Dispose(); 
     dbCommand = null; 
     dbConn.Close(); 
     dbConn = null; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 

сообщение об ошибке говорит:

System.Data.Odbc.OdbcException (0X80131937): ERROR [IM002] [Microsoft] [ODBC Driver Manager] Источник данных не найден и не драйвер по умолчанию указан

+3

пожалуйста, смотрите на [connectionstrings.com] (http://www.connectionstrings.com/progress/) –

+0

Эта статья может быть стоит посмотреть http://knowledgebase.progress.com/articles/Article/P132748 – gyosifov

+1

Вам нужен порт, как говорит Рикардо. Имейте в виду, что 9.1E является древним, и поддержка SQL не такая уж большая. Легко сделать некоторые простые вещи, но не удивляйтесь, если что-то не работает так, как вы ожидаете, и оно медленное. – TheMadDBA

ответ

1

В строке подключения установите порт базы данных прогресса:

PORT = 20931;

+1

В случае, если кто-либо задается вопросом, что по умолчанию для базы данных Progress недоступен порт (http://www.progresstalk.com/threads/default-port-number-for-progress-database.118006/), поэтому вы должны указать его в строке соединения или DSN. – Caltor

2
string connectString = "DSN=QADDB;uid=username;pwd=password;host=hostname;port=port#;db=dbname;"; 
using (OdbcConnection dbConn = new OdbcConnection(connectString)); 
{ 
    try 
    { 
     dbConn.Open(); 
    } catch (Exception) 
    { 
     mRtnVar = "Couldn't Connect"; 
     return mRtnVar 
    } 
    string sqlstr = string.Format(@"SELECT ""FieldName"" FROM PUB.DataBase WHERE ""FieldName"" = 'value'"); 
    using (OdbcCommand comm = new OdbcCommand(sqlstr, dbConn)) 
    { 
     using (OdbcDataReader reader = dbConn.ExecuteReader()) 
     { 
      if (reader.Read()) 
      { 
       mRtnVar = reader["FieldName"].ToString(); 
      } 
     } 
    } 
    return mRtnVar 
}  
Смежные вопросы