ObjectDataSource.Выберите эквивалент метода в SqlDataSource

#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. Спасибо!!