【问题标题】:MS Access Connectionstring problem C#MS Access 连接字符串问题 C#
【发布时间】:2011-01-03 10:57:07
【问题描述】:

我有以下代码

mycon=new SqlConnection();
mycon.ConnectionString="'Provider =Microsoft.ACE.OLEDB.12.0';Data Source='G:\\Abbriviations\\Abbriviations\\App_Data\\abbreviations.accdb'";

myds=new DataSet();
mytable = new DataTable("Abbriviations");
myds.Tables.Add(mytable);
myadap=new SqlDataAdapter();

我收到以下错误。

初始化字符串的格式不符合从索引 0 开始的规范。

你能指导我正确的连接字符串吗?

谢谢 编辑

public class dataManipulationClass
    {
        public OleDbConnection mycon;
        public DataSet myds;
        public DataTable mytable;
        public SqlDataAdapter myadap;
        public OleDbCommand mycomm;     

        public bool ManupulateData()
        {
            mycon = new OleDbConnection();          
            mycon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\\Abbriviations\\Abbriviations\\App_Data\\abbreviations.accdb";

            myds=new DataSet();
            mytable = new DataTable("Abbriviations");
            myds.Tables.Add(mytable);
            myadap=new SqlDataAdapter();

            mycomm=new OleDbCommand();
            mycomm.CommandType=CommandType.Text;
            mycomm.CommandText = "SELECT * FROM Abbriviations";
            mycomm.Connection=mycon;
            myadap.SelectCommand=mycomm;

            return true;
        }
    }

现在我在 mycommm 收到以下错误。

Cannot implicitly convert type 'System.Data.OleDb.OleDbCommand' to 'System.Data.SqlClient.SqlCommand'

谢谢

【问题讨论】:

    标签: c# ms-access connection-string ms-access-2007


    【解决方案1】:

    两件事:

    1. 您使用了错误的连接对象; SqlConnection 用于与 SQL Server 数据库进行通信,同时您正在尝试与 MS Access 数据库进行通信。尝试改用OleDbConnection。这也意味着您应该使用OleDbDataAdapter 而不是SqlDataAdapter
    2. 带有额外引号和空格的字符串看起来有点奇怪。

    试试这个:

    mycon=new OleDbConnection();
    mycon.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\\Abbriviations\\Abbriviations\\App_Data\\abbreviations.accdb";
    // and then the rest of your code
    

    附带说明,connectionstrings.com 是此类信息的绝佳资源(Access connectionstrings 有一个页面)。

    【讨论】:

    • 啊,现在我明白了,您使用的是SqlConnection,它用于SQL Server 数据库,您应该使用OleDbConnection。将更新我的答案。
    • @Tassadaque:你应该使用OleDbDataAdapter 而不是SqlDataAdapter
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2011-12-11
    • 2011-08-02
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多