ورود

View Full Version : commandText چی هستش؟!!!!!



Open-Source
یک شنبه 10 خرداد 1388, 22:12 عصر
من این مقادی که تو commandText وجود دارند ومیشه عوضشون کرد رو نمیفهمم.:عصبانی++:
http://i41.tinypic.com/ngttno.gif

من معنی AddwithValue رو هم نمیفهمم:عصبانی++:
معنی این پارامترها چیه؟!!!!!!!:اشتباه::متفکر:


اگه میشه یه توضیحی بدید دوستان

morteza_1234m
یک شنبه 10 خرداد 1388, 22:42 عصر
commandtext از اسمش که پیداست که یعنی متن دستور
اگر دقت کرده باشید وقتی sqlcommand تعریف می کنید سه تا متد داره که یکیش اینه و دستور SQL این گزینه رو مشخص می کنه مانند Select * from emp
در مورد addwithvalue هم وقتی شما از دستور insert into استفاده می کنید برای هر فیلد یک متغیر متناظر می سای مثلا برای فیلد Name به صورت @Name می سازیم
بعدش هم که تکی باکس یا هر ابزار ورودی دیگر رو به این متغیر انتصاب می دی به وسیله addwithvalue
البته این برداشت شخصی بنده از حرف های استادمونه

seven7777777
یک شنبه 10 خرداد 1388, 23:12 عصر
شما وقتی که یک Query رو در C# می نویسی تا در محیط SQL اجرا بشه ، ممکنه اون Query از دو بخش تشکیل شده باشه .
بخش ثابت که همون متن کوئری شامل دستور SELECT , INSERT , DELETE , UPDATE هست که در ادامش مواردی که می خوای می نویسی و بخش دوم که ممکن باشه ، بخشیه که شما باید به کوئری یه پارامتر رو معرفی کنی .
از اونجا که در حین تعریف کوئری پارامترها در دسترس نیستند ، از متدهایی مثل AddWithValue استفاده می شه تا این مقادیر در هنگام اجرا در متن کوئری قرار بگیره و ادامه ماجرا .

Open-Source
دوشنبه 11 خرداد 1388, 18:52 عصر
ببخشید من همه این چیز هایی که دوستان کفتند ور کم و زیاد میدونستم(@و...) :افسرده:
ولی کاربرد این پارامتر رو نمیفهمم:متفکر:

اگه میشه یه نمونه کد اینجا بزارید شاید مخمون از خنگولی در اومد(این امتحان ها تعطیلمون کرده):چشمک:

Reza_Yarahmadi
دوشنبه 11 خرداد 1388, 22:56 عصر
SqlCommand Cmd = new SqlCommand();
SqlConnection Con = new SqlConnection("Connection String");
Cmd.Connection = Con;
Cmd.Parameters.AddWithValue("@ID", textBox1.Text);
Cmd.Parameters.AddWithValue("@Name", textBox2.Text);
Cmd.Parameters.AddWithValue("@Family", textBox3.Text);
Cmd.CommandText = "inset into Table1 (id, name, family) values (@ID, @Name, @Family)";
Con.Open();
Cmd.ExecuteNonQuery();
Con.Close();

Open-Source
سه شنبه 12 خرداد 1388, 10:45 صبح
SqlCommand Cmd = new SqlCommand();
SqlConnection Con = new SqlConnection("Connection String");
Cmd.Connection = Con;
Cmd.Parameters.AddWithValue("@ID", textBox1.Text);
Cmd.Parameters.AddWithValue("@Name", textBox2.Text);
Cmd.Parameters.AddWithValue("@Family", textBox3.Text);
Cmd.CommandText = "inset into Table1 (id, name, family) values (@ID, @Name, @Family)";
Con.Open();
Cmd.ExecuteNonQuery();
Con.Close();



ایول باهات حال کردم:تشویق:

حالا سوال من اینه که اگه اون خط رو که با قرمز مشخص کردم رو ننویسیم چه اتفاقی درون gride می افته(فقط همین):متفکر:
واصلا کجا نیاز به تعریف پارامتر پیدا میکنیم؟:متفکر:

NewFoxStudent
سه شنبه 12 خرداد 1388, 11:03 صبح
اگه اون خط رو ننویسی دوحالت پیش میاد
یا توی جدول فیلد Family اجازه خالی بودن داره که در این صورت با null پر میشه و تو گرید هم مقداری براش نمایش داده نمیشه
یا اجازه خالی بودن نداره که با خطا روبرو میشید
در کل از پارامترها برای مقدار دادن به فیلدها استفاده میشه اگه پارامتر ها نبودن باید دستورات بالا رو به این شکل مینوشتید


md.CommandText = "inset into Table1 (id, name, family) values ('"+textBox1.text+"','"+ textbox2.text+"','"+ textBox3.text+"')";


حالا فکرش رو بکنید اگه یه جدول 20 تا فیلد داشته باشه و شما بدون استفاده از پارامترها بخواید یه رکورد بهش اضافه کنید چه اتفاقی میفته

Open-Source
سه شنبه 12 خرداد 1388, 12:25 عصر
خوب اینطوری که میشه نوشت(راحت هم هستش):


Cmd.Parameters["fName"].Value=textbox1.text
Cmd.Parameters["Family"].Value=textbox2.text
Cmd.Parameters["ID"].Value=textbox3.text


هم راحت تره و هم با خطا روبه رو نمیشیم.:لبخندساده: