ObjectDataSource.InsertParameters Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
ö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. .