プロパティを使用してクラスを返すように強制します:TypeName
およびDataObjectTypeName
of ObjectDataSource
。挿入パラメータを指定する必要はありません。
App_Code
さまざまなフィールドをパブリックにアクセス可能として宣言するクラスをフォルダーに作成します。例えば:
Country.cs
フィールドを宣言するクラスファイル
public class Country
{
public Country()
{
}
private string name;
public string Name
{
get { return name; }
set { name= value; }
}
private string capital;
public string Capital
{
get { return capital; }
set { capital= value; }
}
private string currency;
public string Currency
{
get { return currency; }
set { currency= value; }
}
private string iSOCode;
public string ISOCode
{
get { return iSOCode; }
set { iSOCode= value; }
}
}
Insert Method:AddCountry()
で、上記のクラスのインスタンスを以下のように渡すだけです。以下に示すように、フィールド値にアクセスし Class_variable_Name.Public_Field_Name
ます。
public void AddCountry(Country country)
{
// a sample code to access the values from Class instance passed in this method
string connString = WebConfigurationManager.ConnectionStrings["MyConnections"].ConnectionString;
SqlConnection con = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Insert into Country(Name, Capital,Currency,ISOCode)
values(@Name,@Capital,@Currency,@ISOCode)";
cmd.Connection = con;
// Add the insert parameters
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 20));
// specify the values for insert parameters
// using the Country class passed as parameter to this method
cmd.Parameters["@Name"].Value = country.Name; // country.Public_Field_Name
cmd.Parameters.Add(new SqlParameter("@Capital", SqlDbType.NVarChar, 20));
cmd.Parameters["@Capital"].Value = country.Capital;
cmd.Parameters.Add(new SqlParameter("@Currency", SqlDbType.NVarChar, 20));
cmd.Parameters["@Currency"].Value = country.Currency;
cmd.Parameters.Add(new SqlParameter("@ISOCode", SqlDbType.NVarChar, 20));
cmd.Parameters["@ISOCode"].Value = country.ISOCode;
con.Open();
// execute the Insert Command
cmd.ExecuteNonQuery();
}
明らかに、ObjectDataSource
コントロールでは、プロパティを指定する必要があります: TypeName
、DataObjectTypeName
.
1.)TypeName
データ アクセス メソッドを含むクラスの名前を示します。これは、メソッドを含むクラス ファイルを意味します。AddCountry()
2.) : データ バインド コントロールから個々の値を渡す代わりに、コントロールが、、またはデータ操作のパラメーターに使用DataObjectTypeName
するクラスの名前を取得または設定します。この場合、これは上記で作成されたクラスです。ObjectDataSource
update
insert
delete
Country
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DataObjectTypeName="Country"
InsertMethod="AddCountry"
TypeName="CountryAccessMethods" <!-- assuming you have defined your Insert,
Update,Delete methods inside a class file named `CountryAccessMethods` -->
</asp:ObjectDataSource>