Ik ben bezig met het Data Access Application Block van Microsoft in C#. Nu krijg ik de foutmelding "Parameter count does not match Parameter Value count" terwijl ik toch echt 4 parameters in de stored procedure opvraag. Heeft iemand een idee hoe dit kan?
C# code:
SQL Stored Procedure:
C# code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| //Get the form field values and put them into parameter objects
SqlParameter SqlParameters1 = new SqlParameter("iPageId", lblHiddenPageId.Text);
SqlParameter SqlParameters2 = new SqlParameter("sPageHTML", EasyWebEdit1.HTMLValue);
SqlParameter SqlParameters3 = new SqlParameter("sPageName", txtbxPageName.Text);
SqlParameter SqlParameters4 = new SqlParameter("iMenuTabId", ddMenuItem.SelectedValue.ToString());
//Fill an array with the paramteres to pass it into the SQLHelper
ArrayList arrParameters = new ArrayList();
arrParameters.Add(SqlParameters1);
arrParameters.Add(SqlParameters2);
arrParameters.Add(SqlParameters3);
arrParameters.Add(SqlParameters4);
txtbxPageName.Text = arrParameters.Count.ToString();
//try
//{
SqlHelper.ExecuteScalar(GetConnectionString(), "insertOrUpdatePage", arrParameters);
//}
//finally
//{
// Response.Redirect("viewdynamicpages.aspx");
//} |
SQL Stored Procedure:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| CREATE PROCEDURE insertOrUpdatePage
@iPageId int,
@sPageHTML ntext
@sPageName nvarchar(50),
@iMenuTabId int
AS
if @iPageId = '' GOTO E_Insert
if @iPageId <> '' GOTO E_Update
E_Insert:
insert into tb_page (sPageHTML, sPageName, iMenuTabId) Values (@sPageHTML, @sPageName, @iMenuTabId)
GOTO CleanUp
E_Update:
update tb_page set sPageHTML = @sPageHTML, sPageName = @sPageName,
iMenuTabId = @iMenuTabId Where iPageId = @iPageId
GOTO CleanUp
CleanUp:
return
GO |
[ Voor 5% gewijzigd door UniCache2 op 14-01-2004 15:44 ]