不支持关键字: “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