asp:SqlDataSource
コントロールかDevExpressのASPxTreeList
だとわかりませんが、Insert()
メソッドを使ってストアドプロシージャを起動しようとすると、私は奇妙なエラーが発生します。SQLDataSource = "プロシージャまたは関数[名前]の引数が多すぎます。"
私はデータベース
protected void TagList_NodeInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
{
SqlDataTagging.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
SqlDataTagging.InsertParameters.Add("ParentID", e.NewValues["ParentTag_ID"].ToString());
SqlDataTagging.InsertParameters.Add("TagName", e.NewValues["TagName_VC"].ToString());
SqlDataTagging.InsertParameters.Add("UserID", "1");
SqlDataTagging.InsertCommand = "sp_InsertTag";
SqlDataTagging.Insert();
}
にノードを挿入しようとするノードを追加するとき、私は上記のコードを発射する場合しかし、私はこのエラーを取得する
プロシージャまたはファンクションsp_InsertTagがあまりにも多くの引数を持っています指定された。
私のSPヘッダ
ALTER PROCEDURE [dbo].[sp_InsertTag] (@ParentID INT, @TagName VARCHAR(100), @UserID int)
しかし、あなたが見ることができるように、C#コードでSPと3の3つのパラメータがあります。
私は実際にテキストを介してSQLを実行すると、奇妙なことです。
とC#でSQLを記述し、それが動作します、私はストアドプロシージャを使用することができますので...
誰もが任意のアイデアや任意の選択肢を持っていますか?
おかげ
"SP_" 接頭辞の用心:http://stackoverflow.com/questions/20530211/avoid-naming-user-stored-procedures-sp-or-sp – Tanner
警告をお寄せいただきありがとうございます。名前を変更したときにも同じエラーが発生しますが、その未来。 – user3428422
これが起きたときに 'TagList_NodeInserting'が2回目に呼び出されていますか?同じ場合、それは同じパラメータコレクションオブジェクトですか?もしそうなら、あなたはコールの前にコレクションをクリアしていますか?コレクションを消去しても、新しいコレクションをインスタンス化します。 – radarbob