Использование строки подключения
"Provider=SQLOLEDB;Data Source=localhost;User ID=foo;password=bar;Database=CodeLists;Pooling=true;Min Pool Size=20;Max Pool Size=30;"
Я получаю следующую трассировку стека
System.Data.OleDb.OleDbException: нет
сообщение об ошибке доступно, код результата:
-2147024770 (0x8007007e). в System.Data.OleDb.OleDbServicesWrapper.GetDataSource (OleDbConnectionString
constr, DataSourceWrapper &
datasrcWrapper) в
System.Data.OleDb.OleDbConnectionInternal..ctor (OleDbConnectionString
constr, соединение OleDbConnection)
в
System.Data.OleDb.OleDbConnectionFactory.CreateConnection (DbConnectionOptions
параметры, объект poolGroupProviderInfo,
DbConnectionPool pool, DbConnection
owningObject) в
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection
owningConnection,
DbConnectionPoolGroup poolGroup) в
System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection
owningConnection) в
System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection
externalConnection, DbConnectionFactory
connectionFactory) в
System.Data.OleDb.OleDbConnection.Open ()
Я получаю эту ошибку, даже если я изменяю URL-адрес сервера с localhost на hkfjhuidhf, что является недопустимым, поэтому я предполагаю, что это проблема на сервере в отношении подключения / настройки OleDb и / или MDAC.
Сервер Windows Server 2003, на котором установлен последний пакет обновления, а MDAC - 2.8 SP2.
Код, который я использую:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void run_Click(object sender, EventArgs e)
{
output.Text = string.Empty;
try
{
OleDbConnection connection;
try
{
connection = new OleDbConnection(conString.Text);
}
catch (Exception ex)
{
MessageBox.Show("Error creating connection");
put(ex.ToString());
return;
}
OleDbCommand command;
try
{
command = connection.CreateCommand();
}
catch (Exception ex)
{
MessageBox.Show("Error creating command");
put(ex.ToString());
return;
}
command.CommandType = CommandType.Text;
command.CommandText = "select top 10 * from " + table.Text;
if (connection.State != ConnectionState.Open)
connection.Open();
OleDbDataReader reader;
try
{
reader = command.ExecuteReader();
if (reader.HasRows)
{
string @out = string.Empty;
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
@out += reader[i] + ", ";
}
}
put(@out);
}
reader.Close();
}
catch (Exception ex)
{
put(ex.ToString());
}
finally
{
connection.Close();
}
}
catch (Exception ex)
{
put(ex.ToString());
}
}
private void put(string message)
{
output.Text += message+Environment.NewLine;
}
}
И это падает при соединении. Open ()
У кого-нибудь есть идеи? Я переустановил MDAC из файла inf, однако я прочитал несколько статей, посвященных версии 2 MDAC 2.8, в отношении кода .Net.
Любой ввод крайне важен.