PDA

View Full Version : راهنمایی در برنامه دفترچه تلفن



پیام حیاتی
یک شنبه 15 مرداد 1391, 14:39 عصر
سلام
نماز روزه هاتون قبول.
من یه دیتابیس ساختم و یک جدول شامل نام،نام خانوادگی و تلفن بعد دیتابیس رو به برنامه متصل کردم.
الآن میخام با جستجو بر اساس نام یا فامیل شماره از دینابیس خوانده و به کاربر نمایش داده بشه.
1.کدهای مربوط به دکمه جستجو رو بلد نیستم.
2.یه مشکل دیگه اینکه وقتی برنامه رو اجرا میکنم مشخصات وارد شده دیتابیس رو نشون میده!(تصویر).
90796
نام دیتابیس Tel و نام جدول Table_Tel هست.
تشکر

mehran788
یک شنبه 15 مرداد 1391, 15:21 عصر
بانک اطلاعاتی sql استفاده می کنی یا اکسس.
من با sql می نویسم

sqlcommand com=new sqlcommand("select * from tabele_tel where name='"+txtname.text+"';
sqldatareader dr;
con.open();
dr=com.excutereader();
dr.read();
string num=dr["number"];
con.close();
messagebox.show("Number="+num);



تو اولش هم باید بنویسی using system.data.sqlclient;
اگر هم بانکت اکسس بود به جای sql تو کل برنامه oledb بنویس

mehran788
یک شنبه 15 مرداد 1391, 15:24 عصر
شرمنده من به جای دابل کوتیشن،تک کوتیشن گذاشتم.خودت درستش کن

پیام حیاتی
یک شنبه 15 مرداد 1391, 17:21 عصر
متاسفانه به تمام کدها و دستورات خطا میداد.
این برنامه من (http://barnamenevis.org/ahvazsell.com/Test/PhoneBook.rar)
هر کاری کردم نشد دیتابیس رو کپی کنم در برنامه چرا؟امکان جابه جایی وجود نداره؟

veniz2008
یک شنبه 15 مرداد 1391, 17:56 عصر
سلام، احتمالا بخاطر اینه که دیتابیس در حال اجرا هست. شما روی دیتابیس راست کلیک کن و اونو detach کن. بعدش دیتابیس رو کپی کن. کد بالا درست هست ولی من خودم همیشه از دیتاتیبل برای این کارها استفاده میکنم. اگر خواستی بگو تا نمونه کد واست بزارم.

پیام حیاتی
یک شنبه 15 مرداد 1391, 19:35 عصر
اگر قرار بدید ممنون میشم و اینکه منظور از دیتا تیبل چی هست؟

veniz2008
یک شنبه 15 مرداد 1391, 21:19 عصر
دیتاتیبل ( datatable ) یه جدول خام هست. وقتی یه جستجو انجام میدی و رکورد (ها ) رو پیدا میکنی در واقع رکوردهای شما یه جدول هستن. حالا نتیجه جستجو رو میریزی داخل دیتاتیبل.
توضیحات : یک تکست باکس برای وارد کردن نام بذارید (من اسمش رو گذاشتم txtinput ) و 3 تا تکست باکس هم خروجی رو نشون میدن ( اسمشون txtname و txtfamily و txtphone گذاشتم).اگر جستجوی شما فقط یک رکورد باشه (وقتی بر اساس فیلد غیر کلید جستجو میکنید احتمالش زیاده که جستجو بیش از یک رکورد پیدا کنه) پس دیتاتیبل شما هم فقط یک رکورد خواهد داشت( یعنی یک سطر و سه ستون خواهی داشت، توجه کن که در سی شارپ مقادیر از صفر شروع میشن). ستون صفر میشه نام، ستون 1 میشه فامیلی و ستون 2 میشه تلفن( البته این ترتیب به شرطیه که در جدولت اول نام باشه بعد فامیلی و بعد تلفن)
اما کد :

SqlConnection con = new SqlConnection("Data Source = (local);Initial Catalog = Tel; Integrated Security = True;");
SqlDataAdapter da = new SqlDataAdapter("select * from Table_Tel where name = '" + txtinput.Text +"'",con);
DataTable dt = new DataTable();
da.Fill(dt);
if(dt.Rows.Count != 0)
{
txtname.Text = dt.Rows[0][0].Tostring();
txtfamily.Text = dt.Rows[0][1].Tostring();
txtphone.Text = dt.Rows[0][2].Tostring();
}
else
MessageBox.Show("not found");
کدها رو حتما خودت تایپ کن. از کپی و paste متنفر باش.
موفق باشی دوست من.

پیام حیاتی
دوشنبه 16 مرداد 1391, 00:38 صبح
ممنون از راهنمایی هاتون.
کدها چند خطا داشتند برطرف کردم اما اینها رو دیگه نتونستم کاری کنم به to.string ها خطا میده؟90832

mehran788
دوشنبه 16 مرداد 1391, 06:21 صبح
ممنون از راهنمایی هاتون.
کدها چند خطا داشتند برطرف کردم اما اینها رو دیگه نتونستم کاری کنم به to.string ها خطا میده؟90832

سی شارپ به حروف بزرگ و کوچیک حساسه.ToString

veniz2008
دوشنبه 16 مرداد 1391, 10:04 صبح
متاسفانه شما اصلا به حرف های من توجه نمیکنید. من وقتی میگم کپی و paste کردن دشمن یه برنامه نویس تازه کاره حتما یه چیزی میدونم که این حرفو میزنم. همونطور که دوستمون گفتن بین ToString و Tostring تفاوت هست. (حرف s در اولی با حروف بزرگ و در دومی با حروف کوچک نوشته شده و سی شارپ بین حروف بزرگ و کوچک تفاوت قائل میشه). شما tostring رو پاک کن و خودت تایپ کن.

پیام حیاتی
دوشنبه 16 مرداد 1391, 12:40 عصر
متاسفانه شما اصلا به حرف های من توجه نمیکنید. من وقتی میگم کپی و paste کردن دشمن یه برنامه نویس تازه کاره حتما یه چیزی میدونم که این حرفو میزنم. همونطور که دوستمون گفتن بین ToString و Tostring تفاوت هست. (حرف s در اولی با حروف بزرگ و در دومی با حروف کوچک نوشته شده و سی شارپ بین حروف بزرگ و کوچک تفاوت قائل میشه). شما tostring رو پاک کن و خودت تایپ کن.
بله آقا محمد حق با شماست به خاطر تعجیل در رسیدن به نتیجه کپی کردم ببخشید.
برنامه درست شد واقعا" ممنونم.