不支持关键字:我的web.config文件中出现“提供程序”错误

时间:2014-12-09 23:14:03

标签: c# asp.net

我正在使用C#创建一个ASP.NET页面,该页面使用位于Web.config文件中的连接字符串。我也在页面中使用了一个SQLDataSource控件,如下所示:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server"
 ConnectionString="<%$ ConnectionStrings:AccessConnectionString %>"
 SelectCommand="SELECT [CategoryID], [CategoryName], [Description] FROM [Categories]"
 UpdateCommand="UPDATE [Categories] SET [CategoryName] = @CategoryName, [Description] = 
 @Description WHERE [CategoryID] = @original_CategoryID">

正如我在标题中所说,我收到的错误是不支持关键字:&#39;提供商&#39; 我对此错误进行了一些研究,似乎好像我应该拿出&#34;提供商&#34;我的连接字符串的一部分,但我仍然对这意味着什么感到困惑。这是我的Web.config文件:

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>

<connectionStrings>

<add name="MyPubs" connectionString="Server=LOCALHOST; Database=pubs; User ID=ora000; 
Password=Pass000;" />

<add name="AccessConnectionString"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|Northwind.accdb;     
Persist Security Info=False; Jet
OLEDB:Database Password=;" providerName="System.Data.OleDb" />

</connectionStrings>

</configuration>

如果我删除&#34;提供商&#34;从字符串中,我得到一条类似的错误消息:不支持关键字:后跟提供程序字符串中剩余的任何字符。我已经坚持了一段时间,而且我对ASP.NET中的连接还很新。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为您需要将ProviderName属性添加到SqlDataSource控件,例如:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
 ConnectionString="<%$ ConnectionStrings:AccessConnectionString %>"
 ProviderName="<%$ ConnectionStrings:AccessConnectionString.ProviderName %>"
 SelectCommand="SELECT [CategoryID], [CategoryName], [Description] FROM [Categories]"
 UpdateCommand="UPDATE [Categories] SET [CategoryName] = @CategoryName, [Description] = 
 @Description WHERE [CategoryID] = @original_CategoryID">

如果您没有指定提供程序,则默认为Microsoft SQL Server的ADO.NET提供程序,该提供程序没有Provider关键字。 (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx