English 中文(简体)
OleDbConnection.Open()在甚至与Kingk服务器联系之前投下了“没有错误的信息”。
原标题:OleDbConnection.Open() throws a "No error message available" error before even contacting the SQL Server
  • 时间:2009-08-21 10:37:47
  •  标签:

利用连接线

"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: No error message available, result code: -2147024770(0x8007007E). at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open()

即便我把服务器URL从当地托管改为无效的hkfjhuidhf,我也得出了这一错误,因此,我假定服务器上出现有关OlegDb连接/设立和(或)发展援助委员会的问题。

服务器是Windows 2003, 运行最新服务包,而MDAC是2.82。

使用Im的代码是:

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;
    }
}

与此相关。 开放()

是否有任何想法? 然而,我已读到与发援会2.8分辨率第2类的某些条款。 净额代码。

任何和所有投入都受到热烈欢迎。

最佳回答

象一个或一个以上的臭氧消耗潜能值组成部分一样,它已经消失或破碎。

当我有类似问题时,我发现,重新安装了MDAC做工,这是第一个安装装置阻止了随后重新设置的缺失参考资料/档案。

最后,我使用RegMon,以找到未能登记的电话,然后比较电话未能使用工作机器的关键。 这将使你看到一名失踪人员。 在我开始工作之前,我最后对5或6个DLs的登记条目进行了人工重新登记和编辑。

或许还应在服务器上查询。

问题回答

如果你与你联系,请你使用SqlClient:

var conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = connectionString;
conn.Open();

如前所述,试图用“MyServerSQLExpress”取代你的资料来源。 错误可能发生,因为它可以找到“空洞”。





相关问题
热门标签