ObjectDataSource.InsertParameters Özellik

Tanım

özelliği tarafından InsertMethod kullanılan parametreleri içeren parameters koleksiyonunu alır.

public:
 property System::Web::UI::WebControls::ParameterCollection ^ InsertParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection InsertParameters { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.InsertParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property InsertParameters As ParameterCollection

Özellik Değeri

ParameterCollection özelliği tarafından InsertMethod tanımlanan yöntemi tarafından kullanılan parametreleri içeren.

Öznitelikler

Örnekler

Bu bölüm iki kod örneği içerir. İlk kod örneği, veri eklemek için bir ObjectDataSource nesnenin iş nesnesi ve DetailsView denetimle nasıl kullanılacağını gösterir. İkinci kod örneği, ilk kod örneğinde kullanılan yöntemin örnek uygulamasını Insert sağlar.

Aşağıdaki kod örneği, bir denetimin ObjectDataSource bir iş nesnesi ve DetailsView bir denetimle veri eklemek için nasıl kullanılacağını gösterir. Başlangıçta, DetailsView içinde yeni NorthwindEmployee bir kayıt için veri girebileceğiniz metin kutularını ve otomatik olarak oluşturulan Ekle düğmesini görüntüler. Denetimin alanlarına DetailsView veri girdikten sonra Ekle düğmesine tıklayın. InsertMethod özelliği, ekleme işlemini hangi yöntemin gerçekleştireceklerini tanımlar.

Ekle düğmesine tıklarsanız, işlem özelliği tarafından InsertMethod belirtilen yöntemi ve koleksiyonda InsertParameters belirtilen tüm parametreler kullanılarak gerçekleştirilir. Bu kod örneğinde, koleksiyonda InsertParameters gözetmen kimliğine karşılık gelen bir parametre belirtilir. Bunun nedeni, kimliğin denetim koleksiyonunda RowsDetailsView nesne BoundField olarak görüntülenmesine rağmen denetime ObjectDataSource bir dize olarak geçirilmesidir. Değerine ayarlanmış bir Type özellik ile açıkça koleksiyona Int32 eklendiğindeInsertParameters, yöntemi tarafından ObjectDataSource dize olarak Int32değil, yöntemine doğru şekilde geçirilir.

Insert İşlem gerçekleştirildiğinde özelliği tarafından InsertMethod tanımlanan yöntem çağrılır. nesnesinin Insert yönteminin parametreleri içeren bir yöntem imzası varsa, koleksiyonun InsertParameters yöntemin başarıyla tamamlanması için Insert yöntem imzası parametreleriyle eşleşen adlara sahip parametreler içermesi gerekir.

Önemli

İstemciden aldığınız tüm parametre değerlerini doğrulamanız gerekir. Çalışma zamanı yalnızca parametre değerini özelliğiyle değiştirmektedir InsertMethod .

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.CS.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.VB.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

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

Aşağıdaki kod örneği, önceki kod örneğinin Insert kullandığı yöntemin örnek uygulamasını sağlar. yöntemi InsertNewEmployeeWrapper , nesnenin EmployeeLogic Web senaryolarındaki ObjectDataSource denetimle ObjectDataSource daha kolay çalışmasını sağlamak için, gerçek iş mantığına önemli bir yeniden yazma yapmadan, sınıfın genel bakışında sağlanan orta katman nesnesine eklenir.

Örneği çalıştırmak için, sınıfa NorthwindEmployee genel bakış bölümünde sağlanan sınıfına ObjectDataSource sahip olmanız gerekir. Bu örnekte, yalnızca parametreleri kullanarak yeni bir veritabanı kaydına ilişkin verileri alan bir iş nesnesi yöntemine nasıl bağlandığı ObjectDataSource gösterilmektedir. Sınıfının yöntemi NorthwindEmployee veritabanını güncelleştirmek için kod içermediğindenSave, örnek veritabanına kayıt eklemez.

// This InsertNewEmployeeWrapper method is a wrapper method that enables
// the use of ObjectDataSource and InsertParameters, without
// substantially rewriting the true implementation for the NorthwindEmployee
// or the EmployeeLogic objects.
//
// The parameters to the method must be named the same as the
// DataControlFields used by the GridView or DetailsView controls.
public static void InsertNewEmployeeWrapper (string FirstName,
                                             string LastName,
                                             string Title,
                                             string Courtesy,
                                             int    Supervisor)
{
  // Build the NorthwindEmployee object and
  // call the true  implementation.
  NorthwindEmployee tempEmployee = new NorthwindEmployee();

  tempEmployee.FirstName  = FirstName;
  tempEmployee.LastName   = LastName;
  tempEmployee.Title      = Title;
  tempEmployee.Courtesy   = Courtesy;
  tempEmployee.Supervisor = Supervisor;

  // Call the true implementation.
  InsertNewEmployee(tempEmployee);
}

public static void InsertNewEmployee(NorthwindEmployee ne) {
  bool retval = ne.Save();
  if (! retval) { throw new NorthwindDataException("InsertNewEmployee failed."); }
}
' This InsertNewEmployeeWrapper method is a wrapper method that enables
' the use of ObjectDataSource and InsertParameters, without
' substantially rewriting the true implementation for the NorthwindEmployee
' or the EmployeeLogic objects.
'
' The parameters to the method must be named the same as the
' DataControlFields used by the GridView or DetailsView controls.
Public Shared Sub InsertNewEmployeeWrapper(FirstName As String, LastName As String, Title As String, Courtesy As String, Supervisor As Integer)
   ' Build the NorthwindEmployee object and
   ' call the true  implementation.
   Dim tempEmployee As New NorthwindEmployee()

   tempEmployee.FirstName = FirstName
   tempEmployee.LastName = LastName
   tempEmployee.Title = Title
   tempEmployee.Courtesy = Courtesy
   tempEmployee.Supervisor = Supervisor

   ' Call the true implementation.
   InsertNewEmployee(tempEmployee)
End Sub


Public Shared Sub InsertNewEmployee(ne As NorthwindEmployee)
   Dim retval As Boolean = ne.Save()
   If Not retval Then
      Throw New NorthwindDataException("InsertNewEmployee failed.")
   End If
End Sub

Açıklamalar

Koleksiyonda InsertParameters yer alan parametrelerin adları ve türleri, özellik imzasında bulunan parametrelerin adları ve türleriyle InsertMethod eşleşmelidir. Parametre adları büyük/küçük harfe duyarlıdır. ve DetailsView denetimleri gibi GridView parametreleri sağlayan veriye bağlı denetimlerle çalışırken, denetim koleksiyonda ObjectDataSource açıkça belirtilen parametreleri veriye bağlı denetim tarafından sağlanan parametrelerle otomatik olarak birleştirir. Bu önemlidir çünkü veriye bağlı denetimler her zaman parametrelerini tür olarak String sağlar ve yöntem imzası sayısal veya tarih türleri içeriyorsa, koleksiyona InsertParameters doğru türe sahip bir parametreyi açıkça eklemeniz gerekir. Aksi takdirde, ObjectDataSource denetim parametreleri koleksiyondaki parametreler tarafından tanımlanan türe göre atamayı dener. Daha fazla bilgi için bkz. ObjectDataSource Denetimiyle Parametreleri Kullanma.

özelliği, InsertParameters denetimiyle ObjectDataSource ilişkilendirilmiş olan tarafından ObjectDataSourceView kapsanan özelliği alırInsertParameters.

Parametre birleştirme, nesne ömrü ve yöntem çözümlemesi hakkında daha fazla bilgi için bkz InsertMethod. .

Şunlara uygulanır

Ayrıca bkz.