powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ошибка при доступе к данным через LINQ to SQL Classes
6 сообщений из 6, страница 1 из 1
Ошибка при доступе к данным через LINQ to SQL Classes
    #37205055
ngelik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только начиная разбираться с ASP. net, поэтому не могу решить следующую проблему.

Есть БД с одной таблицей:
* EmployeeID (первичный ключ, тип int)
* FirstName (имя сотрудника, тип nvarchar(50))
* LastName (фамилия сотрудника, тип nvarchar(50))
* Position (должность, тип nvarcahr(50))

Есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
			<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
					<HeaderTemplate>
						<tr>
							<th>FirstName</th>
							<th>LastName</th>
							<th>Position</th>
							<th>#</th>
						</tr>
					</HeaderTemplate>
					<ItemTemplate>
						<tr>
							<td> <%#Eval( "FirstName" )%> </td>
							<td> <%#Eval( "LastName" )%> </td>
							<td> <%#Eval( "Position" )%> </td>
							<td> 
								<asp:LinkButton ID="DeleteRecordButton" runat="server"
									 CommandArgument='<%#Eval("EmployeeID")%>' OnClick = "DeleteRecordButton_Click">Delete record
								</asp:LinkButton>
							</td>
						</tr>
					</ItemTemplate>				
			</asp:Repeater>

Вылазит следующая ошибка:
DataBinding: 'spGetEmployeeResult' does not contain a property with the name 'EmployeeID'.

В коде CommandArgument='<%#Eval("EmployeeID")%>

Вот содержимое хранимой процедуры spGetEmployee:
Код: plaintext
1.
2.
3.
4.
5.
ALTER PROCEDURE dbo.spGetEmployee
AS
	DECLARE @FirstName NVARCHAR( 50 )
	SELECT FirstName, LastName, Position, EmployeeID
	FROM Employee

Помогите, пожалуйста, разобраться!
...
Рейтинг: 0 / 0
Ошибка при доступе к данным через LINQ to SQL Classes
    #37205061
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ALTER PROCEDURE dbo.spGetEmployee
   @EmployeeID int
AS
SET NOCOUNT ON

DELETE FROM Employee
WHERE  EmployeeID = @EmployeeID 
GO

может вам это надо?
...
Рейтинг: 0 / 0
Ошибка при доступе к данным через LINQ to SQL Classes
    #37205063
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или я не понял вопроса.
...
Рейтинг: 0 / 0
Ошибка при доступе к данным через LINQ to SQL Classes
    #37205078
ngelik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Немного не то. Мне нужно, чтобы при загрузки просто вывести все записи в таблице:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    protected void Page_Load(object sender, EventArgs e)
    {
		DataClassesDataContext db = new DataClassesDataContext();
		var query = db.spGetEmployee();
		Repeater1.DataSource = query;
		Repeater1.DataBind();	 
    }
...
Рейтинг: 0 / 0
Ошибка при доступе к данным через LINQ to SQL Classes
    #37205099
ngelik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А DeleteRecordButton это просто LinkButton, в параметре CommandArgument которого должен храниться EmployeeID. При нажатии на LinkButton запись в таблице с таким EmployeeID должна быть удалена.
Удаление работает корректно, здесь проблема просто в отображении, т.е. в этом коде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    protected void Page_Load(object sender, EventArgs e)
    {
		DataClassesDataContext db = new DataClassesDataContext();
		var query = db.spGetEmployee();
		Repeater1.DataSource = query;
		Repeater1.DataBind();	 
    }

Если же написать так, то ошибки не будет, но и запись не получится удалить
Код: plaintext
1.
2.
3.
<asp:LinkButton ID="DeleteRecordButton" runat="server"
    CommandArgument="Любой текст" OnClick = "DeleteRecordButton_Click">Delete record
</asp:LinkButton>
...
Рейтинг: 0 / 0
Ошибка при доступе к данным через LINQ to SQL Classes
    #37205769
ngelik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам нашел в чем проблема.

В файле DataClasses.dbml в Methods Pane нужно было выбрать хранимую процедуру spGetEmployee в ее параметрах, в поле Return Type изменить значение в Auto на имя моей таблицы - Employee.

После этого все отлично заработало.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ошибка при доступе к данным через LINQ to SQL Classes
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]