我正在使用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中的连接还很新。非常感谢任何帮助。
答案 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)