Aracılığıyla paylaş


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 iş nesnesiyle ve DetailsView denetimle veri eklemek için nasıl kullanılacağını ObjectDataSource 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öntem 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 Rows nesne BoundField olarak görüntülenmesine DetailsView rağmen denetime ObjectDataSource bir dize olarak geçirilmesidir. Bir özellik değerine ayarlanmış olan koleksiyona açıkça eklendiğinde, yöntemi tarafından ObjectDataSource dize olarak değil, yöntemine Int32doğru şekilde geçirilir.InsertParametersTypeInt32

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 yöntem imzası parametreleriyle eşleşen adlara sahip parametreler içermesi Insert gerekir.

Önemli

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

<%@ 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. InsertNewEmployeeWrapper yöntemi, nesnenin EmployeeLogic gerçek iş mantığına önemli bir yeniden yazma olmadan Web senaryolarındaki ObjectDataSource denetimle ObjectDataSource daha kolay çalışmasını sağlamak için sınıfa genel bakış bölümünde 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ınız ObjectDataSource olmalıdır. Bu örnekte, yalnızca parametresini kullanarak yeni bir veritabanı kaydı için veri alan bir iş nesnesi yöntemine nasıl bağlandığı ObjectDataSource gösterilmektedir. Sınıfı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ıyla 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 tüm parametreleri otomatik olarak veri bağlı denetimi tarafından sağlanan parametrelerle 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şkili öğesinin içerdiği ObjectDataSourceView ö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.