نمایش نتایج 1 تا 13 از 13

نام تاپیک: ارتباط با دیتابیس اکسس

  1. #1

    ارتباط با دیتابیس اکسس

    سلام
    فرمی به شکل زیر طراحی کردم که به دیتابیس اکسس دسترسی دارد
    2.jpg

    کد برنامه هم مطابق با کد زیر است


    private void btnNew_Click(object sender, EventArgs e)
    {
    bsPatients.AddNew();

    txtCode.ReadOnly = false;
    txtFirstName.ReadOnly = false;
    txtLastName.ReadOnly = false;
    txtAge.ReadOnly = false;
    txtCodeMelli.ReadOnly = false;
    txtTelephone.ReadOnly = false;
    txtMobile.ReadOnly = false;
    txtAddress.ReadOnly = false;
    txtDescription.ReadOnly = false;

    btnSave.Enabled = true;
    btnCancel.Enabled = true;
    btnNew.Enabled = false;
    btnEdit.Enabled = false;
    btnDelete.Enabled = false;

    txtCode.Focus();
    }

    private void btnEdit_Click(object sender, EventArgs e)
    {
    txtCode.ReadOnly = false;
    txtFirstName.ReadOnly = false;
    txtLastName.ReadOnly = false;
    txtAge.ReadOnly = false;
    txtCodeMelli.ReadOnly = false;
    txtTelephone.ReadOnly = false;
    txtMobile.ReadOnly = false;
    txtAddress.ReadOnly = false;
    txtDescription.ReadOnly = false;

    btnSave.Enabled = true;
    btnCancel.Enabled = true;
    btnNew.Enabled = false;
    btnEdit.Enabled = false;
    btnDelete.Enabled = false;

    txtCode.Focus();
    }

    private void btnCancel_Click(object sender, EventArgs e)
    {
    bsPatients.CancelEdit();

    txtCode.ReadOnly = true;
    txtFirstName.ReadOnly = true;
    txtLastName.ReadOnly = true;
    txtAge.ReadOnly = true;
    txtCodeMelli.ReadOnly = true;
    txtTelephone.ReadOnly = true;
    txtMobile.ReadOnly = true;
    txtAddress.ReadOnly = true;
    txtDescription.ReadOnly = true;

    btnSave.Enabled = false;
    btnCancel.Enabled = false;
    btnNew.Enabled = true;
    btnEdit.Enabled = true;
    btnDelete.Enabled = true;
    }

    private void Patient_Information_Load(object sender, EventArgs e)
    {
    // TODO: This line of code loads data into the 'dSPatient.Patients' table. You can move, or remove it, as needed.
    this.taPatients.Fill(this.dsPatient.Patients);
    }

    private void btnDelete_Click(object sender, EventArgs e)
    {
    string firstName, lastName;
    firstName = txtFirstName.Text;
    lastName = txtLastName.Text;
    FarsiMessagbox.Show(string.Format("می خواهید اطلاعات بیمار {0} را حذف نمایید؟ ", firstName + " " + lastName), "حذف اطلاعات بیمار", FMessageBoxButtons.OkCancel, FMessageBoxIcon.Question);
    bsPatients.RemoveCurrent();
    taPatients.Update(dsPatient.Patients);
    FarsiMessagbox.Show(string.Format("اطلاعات بیمار {0} حذف گردید ", firstName + " " + firstName), "حذف اطلاعات بیمار", FMessageBoxButtons.OkCancel, FMessageBoxIcon.Information);
    }

    private void btnSave_Click(object sender, EventArgs e)
    {
    if (txtCode.Text == "")
    FarsiMessagbox.Show("کد را وارد نمائید","",FMessageBoxButtons.Ok,FMessageBox Icon.Error);
    else
    {
    bsPatients.EndEdit();
    taPatients.Update(dsPatient.Patients);
    FarsiMessagbox.Show("اطلاعات شما با موفقیت ثبت شد", "", FMessageBoxButtons.Ok, FMessageBoxIcon.None);

    txtCode.ReadOnly = true;
    txtFirstName.ReadOnly = true;
    txtLastName.ReadOnly = true;
    txtAge.ReadOnly = true;
    txtCodeMelli.ReadOnly = true;
    txtTelephone.ReadOnly = true;
    txtMobile.ReadOnly = true;
    txtAddress.ReadOnly = true;
    txtDescription.ReadOnly = true;

    btnSave.Enabled = false;
    btnCancel.Enabled = false;
    btnNew.Enabled = true;
    btnEdit.Enabled = true;
    btnDelete.Enabled = true;
    }
    }

    private void txtCodeSearch_TextChanged(object sender, EventArgs e)
    {
    taPatients.FillByCode(dsPatient.Patients, int.Parse(txtCodeSearch.Text));

    }

    private void txtLastNameSearch_TextChanged(object sender, EventArgs e)
    {
    taPatients.FillByLastName(dsPatient.Patients, txtLastNameSearch.Text);

    }



    حالا مشکل من
    1. در هر اجرا وقتی بیمارانی اضافه می کنم و در دیتابیس اکسس ذخیره میشه وقتی برنامه رو می بندم بعضی وقتا کل دیتاها حذف میشه دلیلش چیه؟
    2. می خوام وقتی کد و نام خانوادگی بیماری رو تو تکس باکسهای سمت چپ وارد می کنم یه جستجو بکنه و مشابه رو تو گرید ویو نشون بده یه کوئری مطابق با
    SELECT        Code, FirstName, LastName
    FROM Patients
    WHERE (Code LIKE '@code%')

    برای FillByCode نوشتم و همینطور یه کوئری دیگه هم برای FillByLastName ولی وقتی متن داخل تکس باکسهای سمت چپ تغییر میکنه کل رکوردهای داخل گریدویو پاک میشه و هیچ عکس العمل مناسبی نداره مشکل کجاست؟
    آخرین ویرایش به وسیله elahe1393 : دوشنبه 10 شهریور 1393 در 09:55 صبح

  2. #2
    کاربر تازه وارد آواتار luckyboy77
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    ایران
    پست
    44

    نقل قول: ارتباط با دیتابیس اکسس

    سلام
    در مورد اول چیزی به ذهنم نمیرسه
    اما در مورد جستجویی که خواستین بهترین روش استفاده از خاصیت Filter در شی BindingSource هستش همراه با عملگر Like. به راحتی می تونی با And و Or هر ترکیب که خواستی فیلتر کنی (در حقیقت جستجو کنی)
    من خودم تو برنامه هام استفاده میکنم و خوب جواب میده.

  3. #3

    نقل قول: ارتباط با دیتابیس اکسس

    نقل قول نوشته شده توسط luckyboy77 مشاهده تاپیک
    سلام
    در مورد اول چیزی به ذهنم نمیرسه
    اما در مورد جستجویی که خواستین بهترین روش استفاده از خاصیت Filter در شی BindingSource هستش همراه با عملگر Like. به راحتی می تونی با And و Or هر ترکیب که خواستی فیلتر کنی (در حقیقت جستجو کنی)
    من خودم تو برنامه هام استفاده میکنم و خوب جواب میده.
    درسته منم قبلا تو یه برنامه دیگه از همین روش استفاده کردم جواب گرفتم ولی دیتابیسم SQL بود ولی الان جواب نمیگیرم دیتابیسم اکسس هست نمیدونم تو کوئری مشکل هست اینو تو data set که ساختم تو بخش table adaptor این تابع رو با این کوئری ساختم که از فیلتر هم استفاده کردم ولی جواب نمیگیرم

  4. #4

    نقل قول: ارتباط با دیتابیس اکسس

    الان که چک می کنم دیتابیسم پر هست وقتی data set برنامه با دیتابیس ارتباط برقرار می کنه دیتابیس رو خالی میکنه وقتی هم که از طریق برنامه رکورد به دیتابیس اضافه می کنم وقتی برنامه رو می بندم table تو data set خالی از دیتاست و وقتی می خوام کوئری بنویسم اجراش که می کنم اصلا دتایی نیست که بخواد برگردونه نمی دونم چطوری هی دیتاهای دیتابیس رو خالی میکنه لطفا راهنمایی کنید

  5. #5
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: ارتباط با دیتابیس اکسس

    دوست عزیز دلیل اینکه شما وقتی برنامه رو میبندی و دوباره باز میکنی اطلاعات پاک میشه به خاطر اینه که دیتابیس شما بصورت لوکال کپی میشه!
    یعنی شما وقتی اجرا میکنی و اطلاعات رو وارد میکنی در واقع داری روی دیتابیس کپی وارد میکنی! وقتی هم که می بندی و دوباره اجرا میکنی یه کپی خالی روی قبلی دوباره کپی میشه!
    باید دیتابیست رو از حالت کپی خارج کنی!

  6. #6

    نقل قول: ارتباط با دیتابیس اکسس

    نقل قول نوشته شده توسط alibilgats مشاهده تاپیک
    دوست عزیز دلیل اینکه شما وقتی برنامه رو میبندی و دوباره باز میکنی اطلاعات پاک میشه به خاطر اینه که دیتابیس شما بصورت لوکال کپی میشه!
    یعنی شما وقتی اجرا میکنی و اطلاعات رو وارد میکنی در واقع داری روی دیتابیس کپی وارد میکنی! وقتی هم که می بندی و دوباره اجرا میکنی یه کپی خالی روی قبلی دوباره کپی میشه!
    باید دیتابیست رو از حالت کپی خارج کنی!
    دیتابیسم اکسس هست چطور باید از حالت کپی خارج کنم؟

  7. #7
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: ارتباط با دیتابیس اکسس

    در مورد جستجو هم باید بگم که به نظر من درست نیست که اینطوری کد رو توی TextChange بنویسی! یه button برای هر کدوم بذار و توی رویداد keypress براشون Enter رو معرفی کن تا هر وقت طرف متن رو وارد کرد و اینتر رو زد جستجو انجام بشه.
    برای روش جستجو هم نظر دوست خوبم بهتر از این روشیه که شما اعمال کردی! البته روش های دیگه ای هم هست که شاید بهتر باشه.

  8. #8
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: ارتباط با دیتابیس اکسس

    اگر موقعی که میخواستین دیتاسورس رو به پروژه اضافه کنید دقت میکردین خودش سوال میکنه که آیا حالت کپی بذارم یا نه!
    واسه اینکار از قسمت Solution Explorer یا همون جایی که فرم ها و بقیه مخلفات پروژه هستن ایکون دیتابیست رو انتخاب کن و از قسمت properties گزینه Copy To Output Directory رو برابر با Do Not Copy قرار بده!

  9. #9

    نقل قول: ارتباط با دیتابیس اکسس

    نقل قول نوشته شده توسط alibilgats مشاهده تاپیک
    اگر موقعی که میخواستین دیتاسورس رو به پروژه اضافه کنید دقت میکردین خودش سوال میکنه که آیا حالت کپی بذارم یا نه!
    واسه اینکار از قسمت Solution Explorer یا همون جایی که فرم ها و بقیه مخلفات پروژه هستن ایکون دیتابیست رو انتخاب کن و از قسمت properties گزینه Copy To Output Directory رو برابر با Do Not Copy قرار بده!
    مرسی مشکل پاک شدن دیتابیس حل شد با تشکر

  10. #10

    نقل قول: ارتباط با دیتابیس اکسس

    برای جستجو یک دکمه جستجو قرار دادم و در رویداد کلیک تابع زیر را نوشتم ولی گرید ویو خالی نشون داده میشه
     private void btnSearch_Click(object sender, EventArgs e)
    {
    string code = txtCodeSearch.Text;
    string lastName = txtLastNameSearch.Text;
    if (code == "" && lastName == "")
    {
    FarsiMessagbox.Show("کد یا نام خانوادگی بیمار را وارد نمایید", "جستجو", FMessageBoxButtons.Ok, FMessageBoxIcon.Information);
    }
    else
    {
    if (code != "" && lastName != "")
    {
    this.taPatients.FillByCodeAndLastName(this.dsPatie nt.Patients, int.Parse(code), lastName);
    }
    else if (code != "")
    {
    this.taPatients.FillByCode(this.dsPatient.Patients , int.Parse(code));
    }
    else
    {
    this.taPatients.FillByLastName(this.dsPatient.Pati ents, lastName);
    }
    }


    }

    مشکل چیه؟
    آخرین ویرایش به وسیله elahe1393 : دوشنبه 10 شهریور 1393 در 14:59 عصر

  11. #11
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: ارتباط با دیتابیس اکسس

    یعنی حتی با فیلد کد هم جواب نمیده؟
    نوع فیلدهات توی بانک چطوریه؟

  12. #12

    نقل قول: ارتباط با دیتابیس اکسس

    نه جواب نمیده
    تو دیتابیس اکسس نوع کد number و LastName هم text هستش نوع پارامتر کد رو Int32 و lastName رو string تو کوئری گرفتم نمونه مقدار کد مثلا 1020 هستش

  13. #13
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: ارتباط با دیتابیس اکسس

    برای فیلد کد چرا از like استفاده کردین! به جای like از = استفاده کنید در ضمن اگر فیلد کد از نوع number هستش دیگه نیازی به ' در دوطرف پارامتر نیست

    اگر امکانش بود برنامتون رو بذارید تا بررسی کنم.

تاپیک های مشابه

  1. سوال: خواهشا در مورد ارتباط با دیتابیس اکسس راهنمایی کنید
    نوشته شده توسط nekooee در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 2
    آخرین پست: چهارشنبه 18 مرداد 1391, 17:35 عصر
  2. طریقه ارتباط با دیتابیس اکسس
    نوشته شده توسط oghab1 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 28 دی 1389, 00:52 صبح
  3. مشکل در ارتباط با دیتابیس اکسس 2007
    نوشته شده توسط mazy12 در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 4
    آخرین پست: چهارشنبه 19 فروردین 1388, 09:21 صبح
  4. ارتباط با دیتابیس اکسس
    نوشته شده توسط omidwahid در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: پنج شنبه 21 تیر 1386, 16:18 عصر
  5. فرم سازی در html و ارتباط با دیتابیس اکسس
    نوشته شده توسط behnam5300664 در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: چهارشنبه 28 دی 1384, 00:54 صبح

قوانین ایجاد تاپیک در تالار

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