PDA

View Full Version : سوال: مقایسه رشته قارسی



irrazor
سه شنبه 14 بهمن 1393, 10:07 صبح
سلام دوستان

من ی پروژه سایت دانشگاه رو کار میکنم.ی مشکل دارم اونم اینه که من چندتا جدول رشته(رشته کامپیوترونقشه کشی...) دارم.میخوام وقتی دانشجو وارد قسمت انتخاب واحد میشه با توجه به رشته اون دانشجو جدول رشته رو نمایش بده(اگر کامپیوتر بود جدول دروس رشته کامپیوتر رو نمایش بده.

من این عمل درست انجام میدم اما مشکل اینجاست که تو sql حتما باید رشته به صورت انگلیسی باشه و اگر فارسی باشه عمل مقایسه رو انجام نمیده.

اینم کد ها:


void bind(string a2) {
SqlDataAdapter akoda = new SqlDataAdapter("select * from [LessonPC] where رشته ='" + a2.ToString() + "'", akoconnection);
DataTable akodt = new DataTable();
akoda.Fill(akodt);
GridView1.DataSource = akodt;
GridView1.DataBind();


SqlDataAdapter akoda1 = new SqlDataAdapter("select * from [LessonElectronics] where رشته='" + a2.ToString() + "'", akoconnection);
DataTable akodt1 = new DataTable();
akoda1.Fill(akodt1);
GridView1.DataSource = akodt1;
GridView1.DataBind();


SqlDataAdapter akoda2 = new SqlDataAdapter("select * from [LessonMapping] where رشته='" + a2.ToString() + "'", akoconnection);
DataTable akodt2 = new DataTable();
akoda.Fill(akodt2);
GridView1.DataSource = akodt2;
GridView1.DataBind();
}

نکته: مقداره a2.ToString() رشته دانشجوی ورودی به این قسمته.

aminmousavi
سه شنبه 14 بهمن 1393, 13:34 عصر
سلام دوست عزیز . کلا صورت مساله غلطه ، برای کاری که شما میخواین بکنین باید از کلید خارجی استفاده کنین :
یک جدول برای رشته بسازین فیلدهاش میشه :
- id
- Name
(مثلا 10:نرم افزار ، 11:نقشه کشی و ...)

بعد توی جدول دانشجو یک فیلد میزارین به اسم idReshte که کلید خارجی هست و متصل شده به جدول رشته ، مثلا اگر دانشجو رشته نرم افزار باشد مقدار اون فیلد برابر با 10 میشه

به این شکل جای استفاده از رشته شما از کلید عددی استفاده میکنین که اصلا همچین مشکلاتی براتون پیش نمیاد

irrazor
چهارشنبه 15 بهمن 1393, 08:49 صبح
با تشکر از نظرتون.

ولی خودم 100 تا روش بلدم که کار بکنه این امر ولی میخوام فقط اطلاعات 2 تا جدول طبق این قاعده ساده عمل مقایسه انجام بده.

irrazor
پنج شنبه 16 بهمن 1393, 10:34 صبح
با این قطعه کد به اون چیزی که میخواستم رسیدم:



SqlDataAdapter akoda = new SqlDataAdapter("select LessonPC.[کد درس],LessonPC.[نام درس],LessonPC.[تعداد واحد],LessonPC.ترم,LessonPC.رشته,LessonPC.[روز,زمان,کلاس],LessonPC.[تاریخ آزمون],LessonPC.[نام استاد],LessonPC.[هزینه واحد عملی],LessonPC.[هزینه واحد تئوری],LessonPC.[جمع هزینه درس] from [LessonPC] inner join Student ON LessonPC.رشته=Student.[رشته تحصیلی] where [ش.دانشجوی]='" + Session["user"] + "'", akoconnection); DataTable akodt = new DataTable();
akoda.Fill(akodt);
GridView1.Visible = true;
GridView1.DataSource = akodt;
GridView1.DataBind();