В доступе SELECT было отказано для объекта «Адрес», база данных «CNET_85731», схема «dbo»
Последние 7 месяцев я работал над C # ASP.NET, используя Visual Studio 2008 и SQL Server 2008.
Сегодня я запустил часть своего приложения, которое ранее выполнялось, и получил следующую ошибку:
В разрешении SELECT было отказано для объекта "Address", базы данных "CNET_85731", схемы "dbo".
Я просмотрел свой код и обнаружил, что эта ошибка вызывается в следующем пользовательском элементе управления:
protected void sdsAddressesList_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.AffectedRows == 0)
{
ddlAddresses.Items.Insert((0), new ListItem("No Billing Addresses", "0"));
}
}
SQLDataSource определяется следующим образом:
<asp:SqlDataSource ID="sdsAddressesList" runat="server" OnSelecting="sdsAddressesList_Selecting" OnSelected="sdsAddressesList_Selected"
SelectCommand="SELECT [AddressId], [ZipPostalCode], ZipPostalCode + ' -- ' + Address1 AS CombinedAddress FROM [Address] WHERE ([CustomerID] = @CustomerID AND [IsBillingAddress] = @IsBillingAddress) ORDER BY [ZipPostalCode]"
ConnectionString="<%$ ConnectionStrings:eCoSysConnection %>">
<SelectParameters>
<asp:Parameter Name="CustomerID" Type="Int32" />
<asp:Parameter Name="IsBillingAddress" Type="Boolean" />
</SelectParameters>
</asp:SqlDataSource>
По сути, элемент управления извлекает список адресов для вошедшего в систему пользователя из таблицы [Address], а затем заполняет раскрывающийся список ddlAddresses.
Таблица адресов имеет все те же разрешения, что и остальные таблицы в базе данных. У меня есть около 60 таблиц и около 200 хранимых процедур, все весело работают, выполняя SELECT и т. Д. Нет проблем. За исключением этого вопроса. Что на земле происходит? Я не вносил никаких изменений в базу данных или разрешения для таблиц.
Кто-нибудь может мне помочь.
С уважением
Вальтер