2011-09-10 7 views
0

defaltt値プロパティを使用せずにコードビハインドでsqldatasourceの挿入操作を実行できますか?何かのようなパラメータのキー値のコレクションを提供し、Insert()メソッドを使用するような何か?defaultvalueプロパティなしでsqldatasourceを使用して挿入することはできますか?

InsertParameters [x] .DefaultValueが(理論上はもちろん)何か他のことをしているようだから私は尋ねています - 私はマークアップの再定義を考えています。

これを行うには別の方法がありますか?

+4

データベースのCRUD操作を行う「正しい方法」は、MSが単純にドラッグアンドドロップしてビットを構成するために用意したこの恐ろしいSqlDataSourceコンポーネントを回避することです。正しい方法は、適切に定義されたストアドプロシージャ、パラメータ化されたプロシージャを定義し、コードの背後から何をいつ実行するか、またはDALクラスライブラリのアドホックから呼び出すことです。 –

答えて

0

挿入された値を形成するInsertingイベントを使用する必要があります。その後、必要な場所でInsert()を使用することができます。

0

DefaultValueメソッドは奇妙な名前が付けられていますが、実際には正常に動作します。ほとんどの場合、別の場所に問題がある可能性があります。

また、コントロールをコードの背後から変更したいとしました。 DefaultValueを使用せずに直接値を入力することはできません。その特定のプロパティを避けるには、オブジェクトを作成して記入する必要があります。

あなたは、ある種類のKey-Valueペアを使用して挿入を設定できるかどうかを尋ねました。あなたがこれを行うことが一つの方法は、これは半疑似コードである

MyArray myArray = new MyArray(); 
myArray.add("FirstName", "John"); 
myArray.add("LastName", "Smith"); 
myArray.add("Address", "1234 Main St"); 
myArray.add("Phone", "123-456-786"); 

SqlDataSource sqlNames = New SqlDataSource(/* Conn */); 

sqlNames.InsertCommand = "INSERT INTO [names] ([FirstName],[LastName],[Address],[Phone]) VALUES(@Fname, @Lname, @Address, @Phone)"; 
foreach (MyObject o in myArray) { 
    // Assuming an array of MyObject which has two members 
    sqlNames.InsertParameters.Add("@" + o.DBColumnName, o.Value); 
} 

sqlNames.Insert(); 

の線に沿って何かですが、それはあなたが欲しいものを行うには一般的な考えです。ハッシュテーブル、カスタムオブジェクト配列などを使用してください。

お気軽にお問い合わせください。

関連する問題