Home All Groups Group Topic Archive Search About
Author
29 Jan 2007 11:04 AM
in da club
Im getting that error (It is strange. I Run my programme step by step
pressing f11. im looping SqlCommand in a while loop. The First step runs but
when a enter 2nd step in my loop it returns error ? )

any idea ?

System.Data.SqlClient.SqlException: Procedure or function sp_adduser has
too many arguments specified

My Stored Procedure

CREATE PROCEDURE ST_BOTMARKA
@SiteID INT,
@Marka NVARCHAR (255),
@MarkaLink NVARCHAR (500),
@Tarih NVARCHAR (300)
AS

IF Exists( SELECT 1 FROM TBL_BOTMARKALAR Where MarkaAdi=@Marka AND
SiteID=@SiteID)
UPDATE TBL_BOTMARKALAR SET MarkaLink=@MarkaLink,Tarih=@Tarih
ELSE
INSERT INTO TBL_BOTMARKALAR (SiteID,MarkaAdi,MarkaLink,Tarih) Values
(@SiteID,@Marka,@MarkaLink,@Tarih)
GO




con.ConnectionString = "Initial Catalog=saat;User
Id=sates52;password=abc;Data Source=127.0.0.1";



Today = ConvertDateFunction(System.DateTime.Now);

while (true)

{

con.Open ();

cmd.Connection =con;

cmd.CommandType =CommandType.StoredProcedure;

cmd.CommandText ="ST_BOTMARKA";

cmd.Parameters.Add ("@SiteID",SqlDbType.Int).Value=1;

cmd.Parameters.Add ("@Marka",SqlDbType.NVarChar).Value=Marka;

cmd.Parameters.Add ("@MarkaLink",SqlDbType.NVarChar).Value=MarkaLink;

cmd.Parameters.Add ("@Tarih",SqlDbType.NVarChar).Value=Today;

try

{

cmd.ExecuteNonQuery ();

}

catch (Exception e)

{

MessageBox.Show (e.ToString());

}

cmd.Dispose();

con.Close();

}

Author
29 Jan 2007 11:17 AM
Marc Gravell
Are you re-using a command without Clear()ing the parameters first?
Alternatively, if performing the same command with different
parameter-values, then add them *once* at the top, and then in the
loop just update the values of each parameter as required.

Marc
Author
29 Jan 2007 11:30 AM
in da club
Thank you for your reply

I used
cmd.Dispose();
hoping to clear all data which cmd object is keeping.

I used
cmd.Parameters.Clear ();

and it worked.


<in da club>, haber iletisinde þunlarý
yazdý:OuHz2U5QHHA.***@TK2MSFTNGP05.phx.gbl...
Show quote
> Im getting that error (It is strange. I Run my programme step by step
> pressing f11. im looping SqlCommand in a while loop. The First step runs
> but when a enter 2nd step in my loop it returns error ? )
>
> any idea ?
>
> System.Data.SqlClient.SqlException: Procedure or function sp_adduser has
> too many arguments specified
>
> My Stored Procedure
>
> CREATE PROCEDURE ST_BOTMARKA
> @SiteID INT,
> @Marka NVARCHAR (255),
> @MarkaLink NVARCHAR (500),
> @Tarih NVARCHAR (300)
> AS
>
> IF Exists( SELECT 1 FROM TBL_BOTMARKALAR Where MarkaAdi=@Marka AND
> SiteID=@SiteID)
> UPDATE TBL_BOTMARKALAR SET MarkaLink=@MarkaLink,Tarih=@Tarih
> ELSE
> INSERT INTO TBL_BOTMARKALAR (SiteID,MarkaAdi,MarkaLink,Tarih) Values
> (@SiteID,@Marka,@MarkaLink,@Tarih)
> GO
>
>
>
>
> con.ConnectionString = "Initial Catalog=saat;User
> Id=sates52;password=abc;Data Source=127.0.0.1";
>
>
>
> Today = ConvertDateFunction(System.DateTime.Now);
>
> while (true)
>
> {
>
> con.Open ();
>
> cmd.Connection =con;
>
> cmd.CommandType =CommandType.StoredProcedure;
>
> cmd.CommandText ="ST_BOTMARKA";
>
> cmd.Parameters.Add ("@SiteID",SqlDbType.Int).Value=1;
>
> cmd.Parameters.Add ("@Marka",SqlDbType.NVarChar).Value=Marka;
>
> cmd.Parameters.Add ("@MarkaLink",SqlDbType.NVarChar).Value=MarkaLink;
>
> cmd.Parameters.Add ("@Tarih",SqlDbType.NVarChar).Value=Today;
>
> try
>
> {
>
> cmd.ExecuteNonQuery ();
>
> }
>
> catch (Exception e)
>
> {
>
> MessageBox.Show (e.ToString());
>
> }
>
> cmd.Dispose();
>
> con.Close();
>
> }
>
>

AddThis Social Bookmark Button