#asp.net #objectdatasource #sqldatasource
#asp.net #objectdatasource #sqldatasource
Вопрос:
В ObjectDataSource у нас есть метод с именем SelectMethod и TypeName, в котором мы можем указать метод для выбора данных.
Но какой эквивалентный метод в SqlDataSource конкретизирует метод для данных для выбора. Если такого метода нет, как я могу указать метод для выбора данных, подобных ObjectDataSource
<asp:ObjectDataSource ID="ObjEmployees" runat="server"
SelectMethod="GetEmployees" TypeName="AllowPaging.GetData">
</asp:ObjectDataSource>
SqlConnection connection = new SqlConnection("server=NIPUNA-PC\SQLEXPRESS; database=KTD; Trusted_Connection=yes;");
string commandText = "SELECT * FROM [Emp]";
public DataSet GetEmployees()
{
SqlCommand cmd = new SqlCommand(commandText, connection);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
Ответ №1:
Смотрите это: https://web.archive.org/web/20211010104134/https://www.4guysfromrolla.com/articles/112206-1.aspx
SqlDataSource и ObjectDataSource инициируют свои события выбора непосредственно перед выполнением SQL-запроса или вызовом метода object для извлечения данных. После извлечения данных запускаются выбранные события. Создав обработчик события выбора, вы можете проверять и изменять параметры, используемые при выборе данных;
Вы можете использовать эти обработчики событий, чтобы указать, какой метод используется элементом управления источником данных.
Комментарии:
1. Спасибо за обзор за кулисами и ссылку. Я с нетерпением жду продолжения серии как можно скорее….
Ответ №2:
В SqlDataSource его эквивалентом является SelectCommand. Вы можете либо предоставить запрос Select и установить SelectCommandType
значение Text
(по умолчанию), либо использовать хранимую процедуру и установить SelectCommandType
значение StoredProcedure
Комментарии:
1. Я знаю, но я хочу указать метод, как в ObjectDataSource. (как метод getEmployee выше) возможно ли это?
2. Ну, это два разных поставщика источников данных. У объектов есть методы; с базами данных вы должны использовать sql-запрос или хранимую процедуру.
Ответ №3:
Источник данных SQL выполняет встроенный SQL, поэтому эквивалентного способа вызова метода для объекта не существует. Вы должны использовать SeelctCommand для предоставления SQL-запроса непосредственно в пользовательском интерфейсе.
Если вы используете бизнес-компоненты для выполнения своих запросов, придерживайтесь ObjectDataSource.
HTH.
Комментарии:
1. Да, после поиска в Google разницы между sqldatasourceи ObjectDataSource, я думаю, мне лучше перейти к ObjectDataSource. Спасибо!!