PDA

View Full Version : توضیح درباره @ در دستورات sql



ramin149
پنج شنبه 13 خرداد 1389, 09:56 صبح
من دستور insert زیر رو دیدم ولی نمی دونم @ که برای هر متغییر استفاده می شه برای چه کاری ؟
و همچنین درباره خطی که قرمز کردم به چه معنی


scm.CommandText = "INSERT INTO t1 (scode,fname,lname)VALUES(@p1,@p2,@p3)";
scm.Parameters.Clear();
scm.Parameters.AddWithValue("@p1", textBox1.Text);
scm.Parameters.AddWithValue("@p2", textBox2.Text);
scm.Parameters.AddWithValue("@p3", textBox3.Text);

اوبالیت به بو
پنج شنبه 13 خرداد 1389, 10:02 صبح
سلام

یعنی اینکه فیلد رو به صورت پارامتر مقداردهی می کنی.

قدیم ندیما به اشتباه اینچوری مقدار دهی می کردن:



Select * FROM Table WHERE ID='" + txtID.Text + "'"

یه همچین چیزی بود.
اما یه راه حل بهتری هم هست که بوی آشغال نمی ده. در زبان sql شما می تونید پارامترز تعیین کنید و از ورودی اونها رو مقداردهی کنید. مثل همین کد شما

sds1920
پنج شنبه 13 خرداد 1389, 15:14 عصر
اگه مقدار يك فيلد در دستور sql از قبل مشخص نباشه از پارامتر استفاده مي كنن.چون اين كار هم ظاهر برنامه رو زيباتر مي كنه و حرفه اي تره.
پارامترهارو با @ اولش مي شناسن ولي من بعضي مواقع ديدم كه از ? هم براي پارامترها استفاده ميشه(توي كدهايي كه با ويزارد براي بانك داده نوشته مي شه بود)
فكر كنم هر كاراكتري غير كاراكتر الفبا رو بتوني اول پارامتر قرار بدي ولي مرسومه كه @ بذاري.

hamedsabzian
پنج شنبه 13 خرداد 1389, 15:44 عصر
چون اين كار هم ظاهر برنامه رو زيباتر مي كنه و حرفه اي تره.
SQL Injection را هم در نظر بگیرید.

royal69
یک شنبه 16 خرداد 1389, 22:29 عصر
از علامت @ در Sql برای اول هر متغیر یا پارامتر استفاده می شود.