PDA

View Full Version : گفتگو: نظرسنجی در مورد پروژه دفتر تلفن من



hesam67_b
دوشنبه 25 مرداد 1389, 18:41 عصر
با سلام به همه دوستان و اساتید عزیز.

برای کار با بانک های اطلاعاتی تصمیم گرفتم پروژه دفترچه تلفن رو بنویسم. تجربه واقعا جالبی بود :لبخند:
گرچه فقط یاد گرفتم به بانک متصل بشم و تغییرات رو ایجاد کنم ولی هنوز تعریف کامل بانک اطلاعاتی رو بلد نیستم. مثلا اینکه SQLEXPRESS چیه و چه فرقی با بقیه میکنه و ...

در کل هنوز تعریف بانک رو بلد نیستم که به زودی باید دست به دامان گوگل بشم و یه چیزهایی یاد بگیرم وگرنه اینجوری همیشه گیج میزنم. دوست دارم اطلاعات رو از بالا به پایین بلد باشم نه برعکس :قهقهه:

زیاد حرف زدم. این پروژه رو گذاشتم تا اگر دوستان محبت کنن و نظرشون رو بگن تا اشکالات خودم رو برطرف کنم خیلی ممنون میشم.

در مورد کد نویسی و هرچیزی که به چشم شما میاد بهم تذکر بدین و منم روی چشمام میزارم:بوس:

منتظر نظرات شما دوستان عزیزم هستم


دانلود سورس دفترچه تلفن (http://file.20upload.com/download-13521-1281969488-637f782fe7dc873b59589f534bd62267.zip)

amirh_karimifar
دوشنبه 25 مرداد 1389, 18:44 عصر
برای شروع به نظر من کار با data set و data adaptor و data binding ها رو شروع کن .
جواب میده .

hesam67_b
دوشنبه 25 مرداد 1389, 18:46 عصر
آره. تو این پروژه سعی کردم از همه اینها استفاده کنم.
ممنونم دوست عزیز:لبخندساده:

amirh_karimifar
دوشنبه 25 مرداد 1389, 18:54 عصر
واسه پست الکترونیکیش یه button بذار که با کلیک کردن روش بتونه بهش ایمیل بزنه

میتونی از این کد استفاده کنی .


System.Diagnostics.Process.Start(mailto:);

amirh_karimifar
دوشنبه 25 مرداد 1389, 18:56 عصر
در ضمن یه پیشنهاد دیگه .
میتونی برنامتو جوری تغییر بدی که چند تا تلفن و چند تا آدرس برای یک مخاطب دخیره کنه .
مثل outlook

mmd2009
دوشنبه 25 مرداد 1389, 18:57 عصر
با سلام

چندتا نکته

اول اینکه اون همه دیتاست چی بود؟؟

app.config کاربردش چی بود؟؟؟

این کدهای زیر دلیل علمیشون رو توضیح بده




try
{
SqlConnection objConnection = new SqlConnection(add_conn);
SqlDataAdapter objDataAdapter = new SqlDataAdapter("SELECT * FROM PhoneBook", objConnection);
DataSet dataset = new DataSet();
objDataAdapter.Fill(dataset, "PhoneBook");

DataView dataView = new DataView(dataset.Tables["PhoneBook"]);
dataView.RowFilter = "MobileNumber = '" + txtMobileNumber.Text + "'";

if (dataView.Count == 0)
{
try
{
string strArg = "Insert into PhoneBook( FirstName, LastName, Groups," +
" MobileNumber, HomeNumber, Address, Email, BirthDate, Explain) " +
"values (@name, @lName, @group, @mNumber, @hNumber, @address, @mail," +
" @bDate, @explain)";

SqlCommand objCommand = new SqlCommand(strArg, objConnection);

objConnection.Open();
if (txtLastName.Text == "")
txtLastName.Text = " ";
if (txtHomeNumber.Text == "")
txtHomeNumber.Text = "0";
objCommand.Parameters.AddWithValue("@name", txtName.Text.Trim());
objCommand.Parameters.AddWithValue("@lName", txtLastName.Text.Trim());
objCommand.Parameters.AddWithValue("@group", cboGroups.Text);
objCommand.Parameters.AddWithValue("@mNumber", txtMobileNumber.Text);
objCommand.Parameters.AddWithValue("@hNumber", txtHomeNumber.Text);
objCommand.Parameters.AddWithValue("@address", txtAddress.Text);
objCommand.Parameters.AddWithValue("@mail", txtEmail.Text);
objCommand.Parameters.AddWithValue("@bDate", txtBirthDate.Text);
objCommand.Parameters.AddWithValue("@explain", txtDescriptions.Text);

objCommand.ExecuteNonQuery();
objConnection.Close();
Reload();
MessageBox.Show("مخاطب با موفقیت ثبت شد", "ثبت مخاطب جدید", MessageBoxButtons.OK, MessageBoxIcon.Information);
gbNewContactInformation.Visible = false;
btnCancel.Visible = false;
btnRegisterNewContact.Visible = false;
dataGridView1.Visible = true;
gbContactInformation.Visible = true;
panel1.Visible = true;
gbSearchInformation.Visible = true;
}

catch
{
MessageBox.Show("مخاطب ثبت نشد. لطفا مجددا امتحان کنید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("این شماره موبایل قبلا ثبت شده است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
catch
{
MessageBox.Show("لطفا اطلاعات را به درستی وارد کنید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}




اگر اون چیزی که من فهمیدم این بوده باشه که تو نخواستی موبایل تکرای وارد بشه پس کلید اصلی رو برای چی گذاشتن؟؟

اینارو اصلاح کن

mmd2009
دوشنبه 25 مرداد 1389, 18:59 عصر
و راستی بانکت هم سرشار از مبهم بودنه

amirh_karimifar
دوشنبه 25 مرداد 1389, 19:02 عصر
آقا ابهاماتو بیخیال . ایشون برنامه رو در اختیار همه گذشتن که با پیشنهادادتون سعی کنین هم خودشون هم بقیه یه چیزی یاد بگیرن .
بیشتر به جای ایراد گیری . با یه کم وقت و دقت پیشنهاد بدین .

mmd2009
دوشنبه 25 مرداد 1389, 19:21 عصر
در مورد کد نویسی و هرچیزی که به چشم شما میاد بهم تذکر بدین و منم روی چشمام میزارم:بوس:



از رو هوا که چیزی نمی گیم

اگر از چیزی ایراد نگیری چطور میخوای به پیشرفت چیزی برسی؟؟؟.

مبهم بودن یک چیز دلیل بر اشتباه بودنش نیست که من بیام بگم اشتباهه

mehrsa_fr
دوشنبه 25 مرداد 1389, 19:36 عصر
من یه برنامه دفترچه تلفن ساده نوشتم ببین و نظرتو بگو
http://barnamenevis.org/forum/showthread.php?t=232300

hesam67_b
سه شنبه 26 مرداد 1389, 00:55 صبح
ممنونم از همه دوستان خوبم.


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


میتونی برنامتو جوری تغییر بدی که چند تا تلفن و چند تا آدرس برای یک مخاطب دخیره کنه .
حتما توی ورژن بعدی امکانات برنامه بیشتر میشه. این اولین واقعا بد بود. قول میدم بهتر بشه :لبخند:


اول اینکه اون همه دیتاست چی بود؟؟
من اولش dataGridView رو با بانک متصل کردم که بعدا فهمیدم برای اینکه آخرین نام هایی که به برنامه اضافه میشه رو نمایش بده باید آپدیت بشه. به خاطر همین با کد بانک رو با dataGridView متصل کردم.

وقتی میخواستم دیتاست رو حذف کنم برنامه 1000 تا ارور رو به رو میشد. منم هرچی کدهای اضافی رو پاک میکردم بدتر میشد. برای همین بیخیال این دیتاست ها شدم و گذاشتم باقی بمونن :افسرده:


app.config کاربردش چی بود؟؟؟

باور کن نمی دونم این از کجا اضافه شد به برنامه.


این کدهای زیر دلیل علمیشون رو توضیح بده
اگر اون چیزی که من فهمیدم این بوده باشه که تو نخواستی موبایل تکرای وارد بشه پس کلید اصلی رو برای چی گذاشتن؟؟


آره میدونم. من هم کلید اصلی رو شماره موبایل قرار دادم ولی نمی دونم چرا پارامترهای catch اصلا عمل نمی کردن و برنامه خطای زمان اجرا میداد. مثلا برای خالی بودن فیلدهایی که اجازه خالی بودن داده نشده پارامتر NoNullAllowedException رو قرار دادم ولی جواب نمی داد.

برام عجیب بود که چرا جواب نمیده. خلاصه بیخیالش شدیم و دورش زدیم:لبخند:
به نظر تو مشکل از کجا بود؟؟


و راستی بانکت هم سرشار از مبهم بودنه
میشه بیشتر توضیح بدی یعنی چی؟ کجاش مبهم هست. بگو تا یاد بگیرم


آقا ابهاماتو بیخیال . ایشون برنامه رو در اختیار همه گذشتن که با پیشنهادادتون سعی کنین هم خودشون هم بقیه یه چیزی یاد بگیرن .
بیشتر به جای ایراد گیری . با یه کم وقت و دقت پیشنهاد بدین .

داداشم مرسی از محبتت ولی من اصلا برای یادگیری کلمه ایرادگیری رو قبول ندارم. همین که دوستان لطف دارن و وقت میزارن و نظر میدن برام یه دنیاست. هرچیزی هم که بگن من روی سرم جا میدم و ازش در جهت پیشرفت خودم استفاده میکنم.

البته یکم تعریف هم لازمه :لبخند::لبخند:

mmd2009
سه شنبه 26 مرداد 1389, 01:20 صبح
وقتی شما بانکت رو به برنامه اضافه میکنی فایل app.confiq ایجاد میشه و این فایل یکی از کاربردی ترین فایل ها برای ذخیره چیزی مثل کانشکن استرینگ هستش و دیگه نیازی نبود شما یک متغیر رو صدا بزنید که بهش ادرس بانک رو نسبت بدید

در مورد app.config تو سایت زیاد بحث شده میتونید برید و ببینید

در مورد بانک هم تنها چیزی که میتونم بهتون بگم که به دردتون بخوره اینه یک کتاب بخونید که خیلی بهتون میتونه کمک بکنه.

hesam67_b
چهارشنبه 27 مرداد 1389, 12:25 عصر
ممنونم داداش.


در مورد بانک هم تنها چیزی که میتونم بهتون بگم که به دردتون بخوره اینه یک کتاب بخونید که خیلی بهتون میتونه کمک بکنه.

میتونی یه کتاب که میدونی اطلاعاتم رو بالا میبره معرفی کنی؟ آخه نمی دونم دنبال چی باید بگردم :افسرده: