PDA

View Full Version : ذخیره اطلاعات در دیتابیس بصورت پارامتری



Fastdesign
شنبه 05 مرداد 1392, 17:54 عصر
با سلام

تا حالا برای ذخیره اطلاعات در دیتابیس به روش معمول با دستورات SQL یعنی بدون پارامتر استفاده می کردم. حالا می خوام با چند سوال با روش پارامتری آشنایی بیشتری پیدا کنم.

دلیل استفاده از روش پارامتری چیه؟
تو روش پارامتری فرق بین cmd.Parameters.AddWithValue و cmd.Parameters.Add تو چیه؟

با تشکر

Fastdesign
یک شنبه 06 مرداد 1392, 01:13 صبح
دوستان شاید منظورم رو درست متوجه نشده باشید!

منظور از روش پارامتری در مثال زیر واضح است:
con.Open();
SqlCommand addquery = new SqlCommand("Insert into Table_1(Fname,Lname)values(@F,@L)", con);
cmd.Parameters.Add("@F", textBox1.Text.Trim());
cmd.Parameters.Add("@L", textBox2.Text.Trim());
addquery.ExecuteNonQuery();
ds.Clear();
da.Fill(ds, "Table_1");
con.Close();
در این مثال می خواهیم مقادیری را در دو فیلد نام و نام خانوادگی در دیتابیس SQL درج کنیم ولی با خطای زیر مواجه می شویم:
Must declare the scalar variable "@F".
تو این خطا میگه باید متغیر F را تعریف کنیم! حالا کجا تعریف کنیم رو من نمی دونم .

دوستان راهنمایی کنید...


با تشکر

hercool
یک شنبه 06 مرداد 1392, 06:53 صبح
برو اخرین تاپیک من رو بخون
یه لینک اموزشی توش هست
باید یک پروسیجر تو دیتابیست ایجاد کنی و با دستور اون پروسیجر رو فراخوانی کنی تا این ارور رو ازت نگیره

hercool
یک شنبه 06 مرداد 1392, 07:25 صبح
http://barnamenevis.org/showthread.php?190609-%D8%B7%D8%B1%D8%B2-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-stored-procdure-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

Fastdesign
پنج شنبه 10 مرداد 1392, 15:12 عصر
آیا این کار بدون پروسیجر امکان پذیره؟

hojjatshariffam
پنج شنبه 10 مرداد 1392, 15:23 عصر
دوستان شاید منظورم رو درست متوجه نشده باشید!

منظور از روش پارامتری در مثال زیر واضح است:
con.Open();
SqlCommand addquery = new SqlCommand("Insert into Table_1(Fname,Lname)values(@F,@L)", con);
cmd.Parameters.Add("@F", textBox1.Text.Trim());
cmd.Parameters.Add("@L", textBox2.Text.Trim());
addquery.ExecuteNonQuery();
ds.Clear();
da.Fill(ds, "Table_1");
con.Close();
در این مثال می خواهیم مقادیری را در دو فیلد نام و نام خانوادگی در دیتابیس SQL درج کنیم ولی با خطای زیر مواجه می شویم:
Must declare the scalar variable "@F".
تو این خطا میگه باید متغیر F را تعریف کنیم! حالا کجا تعریف کنیم رو من نمی دونم .

دوستان راهنمایی کنید...


با تشکر
خب اونی که نوشتی اشتباه
تو متد add باید بعد از اسم پارامتر نوع پارامتر رو تعیین کنید.
بعد مقدار بدید
ولی در متد addwithValue اسم با مقدارشو می دی

SQLstr = "Update [Picture_tbl] Set "+"[Picture_Byte] = @Image "+ " Where [Picture_ID]="+ sample.Picture_ID+")";
SqlCommand SQLCOMM = new SqlCommand(SQLstr);
SQLCOMM.Parameters.Add("@Image", System.Data.SqlDbType.Image);
SQLCOMM.Parameters["@Image"].Value = Image;

hojjatshariffam
پنج شنبه 10 مرداد 1392, 15:30 عصر
آیا این کار بدون پروسیجر امکان پذیره؟
روش ارسال پارامتر به استورد پروسیجر هم همینه ولی اینجا نیازی به تعریف استورد پروسیجر نیست
با ارسال متن هم میشه پارامتر اضافه کرد

اینم با متد addWithValue

SQLCOMM.Parameters.AddWithValue("@Image",Image);

Fastdesign
پنج شنبه 10 مرداد 1392, 16:04 عصر
دوست عزیز پس چرا تو این پارامتر بازهم همون خطا رو میده؟
SqlCommand addquery = new SqlCommand("Insert into Table_1(Fname,Lname)values(@F,@L)", con);
cmd.Parameters.AddWithValue("@F", textBox1.Text.Trim());
cmd.Parameters.AddWithValue("@L", textBox2.Text.Trim());
addquery.ExecuteNonQuery();
ds.Clear();
da.Fill(ds, "Table_1");
con.Close();

roolinjax
پنج شنبه 10 مرداد 1392, 17:18 عصر
سلام
میشه بپرسم addquery در خط اول چیه ؟ و اونوقت cmd در خط دوم و سوم چیه ؟
خوب معلومه جواب نمیده واسه اینکه غلط پارامترها رو مقدار دهی کردی
دو تا شیء جداگونه ..... !!!!!