当前位置:编程学习 > C#/ASP.NET >>

不支持关键字: “provider”。

异常详细信息: System.ArgumentException: 不支持关键字: “provider”。

源错误: 


行 104:        //OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(@"db/suljwi.mdb"));
行 105:        SqlDataSource1.SelectCommand = sql;
行 106:        DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
行 107:        AspNetPager1.RecordCount = dv.Count;
行 108:        //DataSet ds = new DataSet();
 

堆栈跟踪: 


[ArgumentException: 不支持关键字: “provider”。]
   System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) +4907604
   System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) +98
   System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) +55
   System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) +24
   System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) +200
   System.Data.SqlClient.SqlConnection.ConnectionString_Set(String value) +62
   System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) +4
   System.Web.UI.WebControls.SqlDataSource.CreateConnection(String connectionString) +29
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +89
   System.Web.UI.WebControls.SqlDataSource.Select(DataSourceSelectArguments arguments) +19
   forumview.AspNetPager1_PageChanged(Object sender, EventArgs e) in i:\cn\\forumview.aspx.cs:106
   Wuqi.Webdiyer.AspNetPager.OnPageChanged(EventArgs e) +97
   Wuqi.Webdiyer.AspNetPager.OnPageChanging(PageChangingEventArgs e) +193
   Wuqi.Webdiyer.AspNetPager.OnLoad(EventArgs e) +304
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

下面是我在webconfig里面的配置

  <connectionStrings>
  <add name="Sql2005Express" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|db|/suljwi.mdb ;Mode=Share Deny None;Persist Security Info=False" providerName="System.Data.OleDb"/>
  </connectionStrings>

请问,问题出在哪?
 
--------------------编程问答-------------------- 你到底是用Access还是SQL Server?
SQL Server怎么和OLEDB 混用? --------------------编程问答-------------------- 你的操作系统上装access的吗?
--------------------编程问答-------------------- 连接串不支持“Provider=Microsoft.Jet.OLEDB.4.0”
你是连接Access吧? --------------------编程问答-------------------- 恩,我用的是access的数据库

测试的时候他说我

DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);

这句话有问题,请问应该怎么修改呢?

--------------------编程问答-------------------- 我在前台页面是用

                <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Sql2005Express %>">
    </asp:SqlDataSource>

这个链接到webconfig里面的配置的,应为是用的网上的组件,“Sql2005Express”这个引用名字暂时没改,请无视。 --------------------编程问答-------------------- 你应该使用oledb的相关ADO.NET类进行操作,而不是Sqlxxxxxx等专属于SQL Server的ADO.NET类。 --------------------编程问答-------------------- access的连接语法是:str="Provider.Microsoft.Jet.OLEDB.4.0;datasouce=”你把access和sqlserver混了吧! --------------------编程问答-------------------- 这才是sqlserver的providername值Data.sqldate --------------------编程问答-------------------- 我改成了access的数据源

                <asp:AccessDataSource ID="SqlDataSource1" runat="server"  DataFile="~/db/suljwi.mdb">
    </asp:AccessDataSource>

cs代码部分:

    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        string sql = "select M_id,M_uid,M_time,M_title,M_theme,M_content,M_replyif from yns_message where M_catalog='" + Convert.ToInt32(Request.QueryString["cid"]) + "'and M_enable='y' order by orderid desc ";
        if (minId > 0)
        {
            sql = "select M_id,M_uid,M_time,M_title,M_theme,M_content,M_replyif from yns_message where M_catalog='" + Convert.ToInt32(Request.QueryString["cid"]) + "'and M_enable='y' and orderid>= " + minId + " order by orderid desc";
            tb_orderid.Text = minId.ToString();
        }

        SqlDataSource1.SelectCommand = sql;
        DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
        AspNetPager1.RecordCount = dv.Count;


        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = dv;
        pds.AllowPaging = true;
        pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
        pds.PageSize = AspNetPager1.PageSize;

        repeaterOFmessage.DataSource = pds;
        repeaterOFmessage.DataBind();


    }



但是还是提示DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
这句话有错误;错误信息是:System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。

--------------------编程问答-------------------- 有人在吗?顶起来 --------------------编程问答-------------------- 我以前也遇到过这样的问题,当时是因为公司装的access和自己的电脑装的access版本不同,出现类似的错误,不知道楼主是不是也是这样的问题。 --------------------编程问答-------------------- 不支持这个 好神奇啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,