PDA

View Full Version : Procedure or function has too many arguments specified



maxpayn2
شنبه 26 دی 1388, 11:18 صبح
سلام
من یه کد به صورت زیر نوشتم که این ارور رو میده :


Procedure or function select_pass has too many arguments specified



string cnnst = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
cnn.ConnectionString = cnnst;
cnn.Open();
SqlCommand cmd = newSqlCommand("select_pass", cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", Session["user_name"].ToString());
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
if (dr.GetValue(0).ToString() == pass)
{
dr.Close();

SqlCommand cmd2 = newSqlCommand("update_pass", cnn);
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.Parameters.AddWithValue("@name", Session["user_name"].ToString());
cmd.Parameters.AddWithValue("@pass", pass2);
SqlDataReader dr2 = cmd.ExecuteReader();
LabelMessage.Text = " ";
LabelMessage.Visible = true;
}
else
{
LabelMessage.Text = " ";
LabelMessage.Visible = true;
}
}



چیکار باید کرد ؟

majid325
شنبه 26 دی 1388, 16:08 عصر
خودش گفته که select_pass دو تا پارامتر داره ولی شما یکیش رو پاس دادین.

maxpayn2
یک شنبه 27 دی 1388, 07:54 صبح
یه پارامتر داره



CREATE PROCEDURE [dbo].[select_pass]
( @name [nvarchar](40))
AS SELECT [Password] FROM [Users] WHERE [UserName] = @name

majid325
دوشنبه 28 دی 1388, 00:59 صبح
من کدت رو تست نکردم ولی فکر کنم پارامتر رو نگرفته.
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

msozan
دوشنبه 03 اسفند 1388, 08:00 صبح
این مشکل منم هست با اینکه تعداد پارامترها یکسان هست ولی این خطا رو میده

A.S.Roma
دوشنبه 03 اسفند 1388, 12:38 عصر
این مشکل منم هست با اینکه تعداد پارامترها یکسان هست ولی این خطا رو میده
مشکل شما در این تاپیک (http://barnamenevis.org/forum/showthread.php?t=206173)این است که یک Instance از کلاس SqlCommand گرفته اید و در هر بار اجرای حلقه 4 پارامتر بهآن اضافه می کنید .
نتیجتا" دستور شما در بار اول n پارامتر دارد و در بار دوم 2 * n پارامتر و در بار سوم 3 * n و ... .