PDA

View Full Version : مشکل در درج رکورد در دیتا بیس با استفاده از کلاس جدا



sara_aryanfar
شنبه 06 خرداد 1391, 12:56 عصر
با سلام دوستان من کلاسی دارم که در اون تمامی توابع لازم دیتابیس و اشیا مورد نیاز مانند دیتا اداپتور و غیره رو تعریف کردم حالا در فرم ها می خوام اینسرت انجام بدم اما همش ارر میده و میگه مقدار عددی وارد کنید

db.Insert("insert into film (film_name,film_company,film_year,film_lang,film_a ctor) values (@film_name,@film_company,@film_year,@film_lang,@f ilm_actor)");
db.da.SelectCommand.Parameters.AddWithValue("@film_name", tbname.Text);
db.da.SelectCommand.Parameters.AddWithValue("@film_company", tbcant.Text);
db.da.SelectCommand.Parameters.AddWithValue("@film_year", tbyear.Text);
db.da.SelectCommand.Parameters.AddWithValue("@film_lang", tblang.Text);
db.da.SelectCommand.Parameters.AddWithValue("@film_actor", tbactor.Text);




ارر
Must declare the scalar variable "@film_name".

sara_aryanfar
شنبه 06 خرداد 1391, 19:37 عصر
دوستان کسی کار نکرده

mohammad272005
شنبه 06 خرداد 1391, 20:19 عصر
با سلام،
فکر کنم علتش یه space باشه که توی پارامترها ایجاد شده: AddWithValue("@film _name", tbname.Text); که باید بشه AddWithValue("@film_name", tbname.Text);

sara_aryanfar
شنبه 06 خرداد 1391, 20:52 عصر
اونو که موقع درج مطلب در سایت ایجاد شده وکد اصلی که منظور من هست مثل همونیه که شما دادین

Hybrid
شنبه 06 خرداد 1391, 21:42 عصر
سلام ،

شما میخواین Insert پس چرا اومدین پارامترها رو از نوع SelectCommand انتخاب کردین؟؟

باید پارامترها از نوع insertCommand باشه یعنی به شکل db.da.insertCommand.parameters که خودتون بهتر از من میدونین.

موفق باشید

فرید نجفلو
شنبه 06 خرداد 1391, 23:35 عصر
سلام
دوست عزیز خط اول کدتون رو به انتهای کد انتقال بدید و تست کنید
اگه همه کد این باشه مشکل شما این هست که شما دستور رو اجرا می کنید قبل از اون که پارامتر ها رو مقدار دهی کنید

sara_aryanfar
یک شنبه 07 خرداد 1391, 16:03 عصر
دوست گرامی این کاری که شما گفتین هم انجام دادم اما خطای
Object reference not set to an instance of an object. رو داد

کد من

db.da.UpdateCommand.Parameters.AddWithValue("@date_time",tbtime.Text);
db.da.UpdateCommand.Parameters.AddWithValue("@currency",tbcurrency.Text);
db.da.UpdateCommand.Parameters.AddWithValue("@rent",Convert.ToInt32(tbrent.Text));
db.Update("update opt set date_time=@date_time,currency=@currency,rent=@rent");
تابع که داخل کلاس هم تعریف شده برای آپدیت اینه


public void Update(string sql)
{
try
{
conect.Open();
da.UpdateCommand = new SqlCommand();
da.UpdateCommand.Connection = conect;
da.UpdateCommand.CommandText = sql;
da.UpdateCommand.ExecuteNonQuery();
conect.Close();
}
catch
{

}

}

فرید نجفلو
یک شنبه 07 خرداد 1391, 17:07 عصر
سلام
دوست عزیز شما فکر کنم اصلا کد هاتون رو تست و بررسی نکردید
شما اینجا
db.da.UpdateCommand.Parameters.AddWithValue("@curr ency",tbcurrency.Text);
به پارامتر مقدار معرفی می کنید ولی داخل تابع و در زمان اجرا:
da.UpdateCommand = new SqlCommand();

این یعنی تمام پارامترهایی که پر کردید از بین رفت!!!

sara_aryanfar
یک شنبه 07 خرداد 1391, 19:21 عصر
چطوری می تونم برطرفش کنم ؟