Поделиться через


SqlDataSourceStatusEventArgs Класс

Определение

Предоставляет данные для события, вызываемого элементом SqlDataSource управления после завершения операции данных.

public ref class SqlDataSourceStatusEventArgs : EventArgs
public class SqlDataSourceStatusEventArgs : EventArgs
type SqlDataSourceStatusEventArgs = class
    inherit EventArgs
Public Class SqlDataSourceStatusEventArgs
Inherits EventArgs
Наследование
SqlDataSourceStatusEventArgs

Примеры

В следующем примере кода показано, как использовать SqlDataSourceStatusEventArgs класс для проверки возвращаемого значения и значений выходных параметров, возвращаемых при использовании SqlDataSource элемента управления с хранимой процедурой для заполнения GridView элемента управления. Хранимая процедура выбирает данные, отображаемые в объекте GridView, но также передает другие сведения вызывающей стороне, например целочисленный выходной параметр и возвращаемое значение. Параметры, SqlDataSource используемые для хранимой процедуры, содержатся SelectParameters в коллекции и состоят из параметров, которые передают сведения из веб-формы в хранимую процедуру, а также параметры, которые передают сведения обратно в форму. Для Direction свойства этих параметров задано Output значение и ReturnValue.

<%@Page  Language="C#" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
// Clicking the Submit button explicitly refreshes the data 
// by calling the Select() method.
private void Submit(Object source, EventArgs e) {
  SqlDataSource1.Select(DataSourceSelectArguments.Empty);
}

// This event handler is called after the Select() method is executed.
private void OnSelectedHandler(Object source, SqlDataSourceStatusEventArgs e) {

  IDbCommand cmd = e.Command; 
  
  Label1.Text = "Parameter return values: ";

  foreach (SqlParameter param in cmd.Parameters) {
    //  Extract the value of the parameter.
    Label1.Text += param.ParameterName + " - " + param.Value.ToString();
  }
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:sqldatasource
            id="SqlDataSource1"
            runat="server"
            datasourcemode="DataSet"
            connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
            selectcommand="getordertotal"
            onselected="OnSelectedHandler">
            <selectparameters>
              <asp:querystringparameter name="empId" querystringfield="empId" />
              <asp:parameter name="total" type="Int32" direction="Output" defaultvalue="0" />
              <asp:parameter name="_ret" type="Int32" direction="ReturnValue" defaultvalue="0" />
            </selectparameters>
        </asp:sqldatasource>
        <!--
          CREATE PROCEDURE dbo.getordertotal
            @empId int,
            @total int OUTPUT
          as
            set nocount on
            select @total    = count(1) from orders where employeeid=@empid;
            select * from orders where employeeID = @empId ;
            return (-1000);
          GO
        -->

        <asp:gridview
          id="GridView1"
          runat="server"
          allowpaging="True"
          pagesize="5"
          datasourceid="SqlDataSource1" />

        <asp:button
          id="Button1"
          runat="server"
          onclick="Submit"
          text="Refresh Data" />

        <asp:label id="Label1" runat="server" />

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
' Clicking the Submit button explicitly refreshes the data 
' by calling the Select() method.
Private Sub Submit(source As Object, e As EventArgs)
  
  SqlDataSource1.Select(DataSourceSelectArguments.Empty)
  
End Sub ' Submit

' This event handler is called after the Select() method is executed.
Private Sub OnSelectedHandler(source As Object, e As SqlDataSourceStatusEventArgs)

  Dim cmd As IDbCommand 
  cmd = e.Command
  Dim param As SqlParameter
  
  Label1.Text = "Parameter return values: "
  
  For Each param In cmd.Parameters
    
    ' Extract the name and value of the parameter.
    Label1.Text = Label1.Text & param.ParameterName & " - " & _
                  param.Value.ToString()

  Next

End Sub ' OnSelectedHandler
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:sqldatasource
            id="SqlDataSource1"
            runat="server"
            datasourcemode="DataSet"
            connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
            selectcommand="getordertotal"
            onselected="OnSelectedHandler">
            <selectparameters>
              <asp:querystringparameter name="empId" querystringfield="empId" />
              <asp:parameter name="total" type="Int32" direction="Output" defaultvalue="0" />
              <asp:parameter name="_ret" type="Int32" direction="ReturnValue" defaultvalue="0" />
            </selectparameters>
        </asp:sqldatasource>
        <!--
          CREATE PROCEDURE dbo.getordertotal
            @empId int,
            @total int OUTPUT
          as
            set nocount on
            select @total    = count(1) from orders where employeeid=@empid;
            select * from orders where employeeID = @empId ;
            return (-1000);
          GO
        -->

        <asp:gridview
          id="GridView1"
          runat="server"
          allowpaging="True"
          pagesize="5"
          datasourceid="SqlDataSource1" />

        <asp:button
          id="Button1"
          runat="server"
          onclick="Submit"
          text="Refresh Data" />

        <asp:label id="Label1" runat="server" />

    </form>
  </body>
</html>

Комментарии

Класс SqlDataSourceStatusEventArgs используется в Selected, UpdatedInsertedи Deleted события для передачи сведений об операции базы данных после выполнения элементом управления источниками данных. Эти сведения включают количество строк, затронутых операцией, объект, DbCommand используемый источником данных для выполнения операции, и все сведения об исключении, которые привели к возникновению. Добавив делегат обработчика событий для обработки Selectedсобытий UpdatedInserted или Deleted событий, вы можете изучить эти данные и выполнить любые дополнительные действия после обработки.

Элемент SqlDataSource управления предоставляет множество событий, которые можно обрабатывать для работы с базовыми объектами данных во время операции с данными. В следующей таблице перечислены события и связанные EventArgs классы обработчиков событий, которые лучше помогут вам определить различные события, соответствующие жизненному циклу операции данных с помощью SqlDataSource элемента управления.

Event EventArgs EventHandler
Selecting происходит перед получением данных. SqlDataSourceSelectingEventArgs SqlDataSourceSelectingEventHandler
Inserting, UpdatingDeleting возникает перед выполнением операции вставки, обновления или удаления. SqlDataSourceCommandEventArgs SqlDataSourceCommandEventHandler
Selected, Inserted, UpdatedDeleted возникает после завершения операций извлечения данных, вставки, обновления или удаления. SqlDataSourceStatusEventArgs SqlDataSourceStatusEventHandler

Конструкторы

Имя Описание
SqlDataSourceStatusEventArgs(DbCommand, Int32, Exception)

Инициализирует новый экземпляр SqlDataSourceStatusEventArgs класса, используя указанные выходные параметры, возвращаемое значение и количество строк, затронутых операцией базы данных.

Свойства

Имя Описание
AffectedRows

Возвращает количество строк, затронутых операцией базы данных.

Command

Возвращает команду базы данных, отправленную в базу данных.

Exception

Возвращает оболочку для всех исключений, создаваемых базой данных во время операции с данными.

ExceptionHandled

Возвращает или задает значение, указывающее, было ли обработано исключение, вызываемое базой данных.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел