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


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, Updated, Insertedи Deleted для передачи сведений об операции базы данных после ее выполнения элементом управления источником данных. Эти сведения включают в себя количество строк, затронутых операцией, объект, DbCommand который источник данных использовал для выполнения операции, и любые сведения об исключении, которые были вызваны. Добавив делегат обработчика событий для обработки Selectedсобытий , UpdatedInserted или Deleted , можно проверить эти данные и выполнить любую дополнительную требуемую постобработку.

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

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

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

SqlDataSourceStatusEventArgs(DbCommand, Int32, Exception)

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

Свойства

AffectedRows

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

Command

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

Exception

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

ExceptionHandled

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

Методы

Equals(Object)

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

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

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

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

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

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

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

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

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

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

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

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