ورود

View Full Version : سوال: جستجو و نمایش در چند textbox د در Wpf با linq



yekta99
یک شنبه 09 مرداد 1390, 10:35 صبح
سلام دوستان

( این تاپیک 24ساعت توی تالار دسترسی به داده ها (ADO.Netو LINQ ) (http://barnamenevis.org/showthread.php?297732-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%A7%D8%B2-textbox-%D9%88-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AF%D8%B1-%DA%86%D9%86%D8%AF-textbox-%D8%AF%DB%8C%DA%AF%D8%B1-%D8%AF%D8%B1-Linq) بود ولی کسی جواب نداد . )

خواهش می کنم اگر خواستید پاکش کنید توی اون تالار اگه می دونید مشکل برنامه کجاست جوابم رو بدید .

من تازه دارم linq را یاد می گیریم برای استفاده در پروژه wpf. من می خوام با کلیک روی یک باتن متن یک textbox در جدول جستجو بشه و توی چند تا textbox دیگه نمایش بده .
سرچ کردم در این مورد زیاد بود ولی هیچ کدوم من رو به جواب نرسوند .

کدی که استفاده کردم :

UnivDataDataContext data = new UnivDataDataContext();
List<Student> students = (from s1 in data.Students
where s1.StudentID.Equals(textBox1.Text)
select s1).ToList();
textBox2.Text =student1.SName ;
textBox3.Text = student1.SFamily;
textBox4.Text = student1.Major;

ولی کار نمی کنه و موقع اجرا error(عکس ضمیمه) رو میده

هرجور تغییرش دادم باز کار نکرد ، لطفا راهنمایی کنید .

مهدی فرزاد
یک شنبه 09 مرداد 1390, 10:46 صبح
سلام
کد شما اشکال داره باید حتما مقدار Single رو برگردونه

مثل این

UnivDataDataContext data = new UnivDataDataContext();
var students = (from s1 in data.Students
where s1.StudentID == textBox1.Text
select s1).SingleOrDefault();
if (students != null)
{
textBox2.Text = students.SName;
textBox3.Text = students.SFamily;
textBox4.Text = students.Major;
}


اینجوری هم میشه نوشت
UnivDataDataContext data = new UnivDataDataContext();
var students = data.Students.SingleOrDefault(a=> a.StudentID == textBox1.Text);
if (students != null)
{
textBox2.Text = students.SName;
textBox3.Text = students.SFamily;
textBox4.Text = students.Major;
}

البته من فرض کردم که StudentID مقدار String داره ، در غیر این صورت باید textBox1.text رو تبدیل کنید به int

yekta99
یک شنبه 09 مرداد 1390, 12:06 عصر
ممنون از توجتون

ولی بازهم همون error رو میده

مهدی فرزاد
یک شنبه 09 مرداد 1390, 12:08 عصر
حتما فیلد مورد نظر خالی هست
از هر StudentID فقط یکی در جدول دارید؟
شرط if من رو گذاشتید؟

yekta99
یک شنبه 09 مرداد 1390, 12:21 عصر
اگه منظورتون توی جدوله، که جدول خالی نیست

شرط if رو هم اضافه کردم

مهدی فرزاد
یک شنبه 09 مرداد 1390, 12:34 عصر
کد رو دقیقا مثل چیزی که من نوشتم نوشتید؟
textBox1.text رو به int تبدیل کردید؟؟
StudentID یکتاست؟

مهدی فرزاد
یک شنبه 09 مرداد 1390, 12:36 عصر
من به یک نکته دقت نکردم
این student1 ها باید بشن students
کد رو اصلاح کردم مجدد ببینید

yekta99
یک شنبه 09 مرداد 1390, 12:38 عصر
دقیقه همین رو کپی کردم و
Convert.ToInt32( textBox1.Text)
رو اضافه کردم .

StudentID فیلد کلید جدوله

مهدی فرزاد
یک شنبه 09 مرداد 1390, 12:40 عصر
student1 ها باید بشن students

yekta99
یک شنبه 09 مرداد 1390, 12:44 عصر
خیلی خیلی ممنون ، درست شد