PDA

View Full Version : error موقع اجرای پروسیجر



MINA B
یک شنبه 19 مرداد 1393, 19:50 عصر
سلام دوستان نمی دونم سوالم رو جای درستی پرسیدم یا نه اما لطفا کمک کنید خیلی ضروری و فوریه.
من یه پروسیجر نوشتم که یه ردیف از جدول رو طبق آیدی که می گیره حذف می کنه موقه اجرا تو سی شارپ یه بار حذف میشه اگه دوباره بخوام یه دیگه رو حذف کنم ارور میده بعضی وقتام کلا ارور میده اینم ارور
Procedure or function deldarkhast has too many arguments specified.
اینم کوئری که از قسمت modify کپی کردم:

ALTER procedure [dbo].[deldarkhast](@id int)as


delete from tbl_darkhast
where ID=@id
کدی که تو سی شارپ برای فراخوانی نوشتم

public void Delete_Darkhast(int id) {
this.Open();
string sql = "deldarkhast";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@id", SqlDbType.Int).Value = id;


if (cmd.ExecuteNonQuery() == 1)
{
MessageBox.Show("حذف با موفقیت انجام شد");
cmd.Parameters.Clear();
}
else
{
MessageBox.Show("خطا");
}
this.Close();

}
کلا معلوم نیست چشه اگه یه بار حذف کنم خوبه ولی به دوبار ارور میده یا مثلا اگه اول یه چیزی رو ثبت کنم بعد بخوام حذفش کنم ارور میده خواهش می کنم کمک کنید برای نویش همینم تا حالا به صد تا سایت رجوع کردم متن ارورم زدم که میگن تعداد پارامتر ها همخوانی نداره اما این که درسته:ناراحت:

MINA B
یک شنبه 19 مرداد 1393, 19:53 عصر
تازه اگه دیتا گریدم بخوام رفرش بشه این ارور رو میده
Could not find stored procedure 'select * from tbl_darkhast'.
اینم کد

public DataTable Darkhasttable() {


DataTable dt1 = new DataTable();
this.Open();
string sql = "select * from tbl_darkhast";
cmd.CommandText = sql;
daa.Fill(dt1);
this.Close();
return dt1;
}
اینم کد پشت دکمه حذف

.Value.ToString();
DialogResult dialogResult = MessageBox.Show(" برای حذف مطمئن هستید ؟", "هشدار", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
db.Delete_Darkhast(int.Parse(this.ID));
//db.InsertLogs("کاربر" + Statics.GetUser + "یک درخواست حذف کرد" + " زمان: ");
// dataGridView1.DataSource = db.Kharidartable();


}
dataGridView1.DataSource = db.Darkhasttable();
ClearTextBoxes(this.Controls);

}]

MINA B
یک شنبه 19 مرداد 1393, 20:56 عصر
خواهش می کنم کمک کنید :گریه::گریه:

ham3d1988
چهارشنبه 22 مرداد 1393, 11:59 صبح
من یه پروسیجر نوشتم که یه ردیف از جدول رو طبق آیدی که می گیره حذف می کنه موقه اجرا تو سی شارپ یه بار حذف میشه اگه دوباره بخوام یه دیگه رو حذف کنم ارور میده بعضی وقتام کلا ارور میده اینم ارور
Procedure or function deldarkhast has too many arguments specified.

کاش برنامه رو میزاشتین میفهمیدین دقیقا اشکال کار کجاست

این خطا یعنی اینکه شما تعداد پارامترایی که میفرستی مشکل داره که خودتونم فهمیدین
حالا من حس میکنم شما داری از یه sqlCommand عمومی استفاده میکنید و پارامترها با هم قاطی میشن
چون شما وقتی اینجا نوع sqlCommand رو SP انتخاب کردید

public void Delete_Darkhast(int id) {
this.Open();
string sql = "deldarkhast";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = sql;

ولی توی تابع بعدی یعنی Darkhasttable() به sqlcommand کد sql معرفی کردید اما sqlcommand دنبال پراسیجر میگرده چون قبلا نوعشو پراسیجر انتخاب کردید




public DataTable Darkhasttable() {


DataTable dt1 = new DataTable();
this.Open();
string sql = "select * from tbl_darkhast";
cmd.CommandText = sql;



و شما خطای

Could not find stored procedure 'select * from tbl_darkhast'.
رو دریافت کردید