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

نام تاپیک: update دیتابیس

  1. #1

    update دیتابیس

    سلام
    یک لیستی از بیماران دارم که نیاز هست برای هر بیمار تنظیمات دستگاه ثبت کنم با انتخاب ستون هر بیمار و کلیک بر روی دکمه تنظیمات دستگاه کد بیمار رو به فرم جدید تنظیمات پاس میدم که بر اساس این کد بره تو جدول دیتابیس اگر برای بیمار قبلا تنظیماتی ثبت شده اونارو لود کنه در غیر این صورت فیلدها خالی باشه بعد وقتی فیلدهای تنظیمات رو پر کرد با کلیک بر روی دکمه ذخیره تنظیمات اطلاعات تو دیتابیس ذخیره بشه البته در صورتیکه تنظیماتی قبلا ثبت نشده insert کنه اگر تنظیماتی قبلا ثبت شده اونارو update کنه

    فرم تنظیماتم اینه
    4.jpg

    کد Insert
     public void InsertDataSportDevice(Guid sportDeviceID)
    {
    OleDbConnection ocn = new OleDbConnection();
    OleDbCommand ocm = new OleDbCommand();

    ocn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\SportDatabase.accdb";

    ocm.Connection = ocn;
    ocm.CommandText = "INSERT INTO SportDevice (SportDeviceID, PatientCode, LeftIsEnable, LeftStartPoint, LeftEndPoint,LeftHardnessLevel,"+
    "RightIsEnable, RightStartPoint, RightEndPoint, RightHardnessLevel, Reapet) VALUES(sportDeviceID,patientCode,"+
    "@leftIsEnable, @leftStartPoint, @leftEndPoint, @leftHardnessLevel, @rightIsEnable, @rightStartPoint, @rightEndPoint,"+
    "@rightHardnessLevel, @reapet)";
    ocm.Parameters.Clear();

    ocm.Parameters.AddWithValue("sportDeviceId", sportDeviceID);
    ocm.Parameters.AddWithValue("patientCode", Int32.Parse(lblPatientCode.Text));
    ocm.Parameters.AddWithValue("@leftIsEnable", chkLeftIsEnable.Checked);
    ocm.Parameters.AddWithValue("@LeftStartPoint", txtLeftStartPoint.Text);
    ocm.Parameters.AddWithValue("@LeftEndPoint", txtLeftEndPoint.Text);
    ocm.Parameters.AddWithValue("@LeftHardnessLevel", txtLeftHardnessLevel.Text);
    ocm.Parameters.AddWithValue("@rightIsEnable", chkRightIsEnable.Checked);
    ocm.Parameters.AddWithValue("@rightStartPoint", txtRightStartPoint.Text);
    ocm.Parameters.AddWithValue("@rightEndPoint", txtRightEndPoint.Text);
    ocm.Parameters.AddWithValue("@rightHardnessLevel", txtRightHardnessLevel.Text);
    ocm.Parameters.AddWithValue("@reapet", numUpDown.Value);

    ocn.Open();
    ocm.ExecuteNonQuery();
    ocn.Close();

    ocm.Dispose();
    ocn.Dispose();
    }


    کد update

    public void UpdateDataSetting()
    {
    OleDbConnection ocn = new OleDbConnection();
    OleDbCommand ocm = new OleDbCommand();

    ocn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\SportDatabase.accdb";
    ocm.Connection = ocn;
    ocm.CommandText = "UPDATE SportDevice SET LeftIsEnable = @leftIsEnable , LeftStartPoint = @leftStartPoint, LeftEndPoint = @leftEndPoint,"+
    "LeftHardnessLevel = @leftHardnessLevel, RightIsEnable = @rightIsEnable, RightStartPoint = @rightStartPoint,"+
    "RightEndPoint = @rightEndPoint, RightHardnessLevel = @rightHardnessLevel, Reapet = @reapet WHERE PatientCode = patientCode";
    ocm.Parameters.Clear();

    ocm.Parameters.AddWithValue("patientCode", Int32.Parse(lblPatientCode.Text));
    ocm.Parameters.AddWithValue("@leftIsEnable", chkLeftIsEnable.Checked);
    ocm.Parameters.AddWithValue("@LeftStartPoint", txtLeftStartPoint.Text);
    ocm.Parameters.AddWithValue("@LeftEndPoint", txtLeftEndPoint.Text);
    ocm.Parameters.AddWithValue("@LeftHardnessLevel", txtLeftHardnessLevel.Text);
    ocm.Parameters.AddWithValue("@rightIsEnable", chkRightIsEnable.Checked);
    ocm.Parameters.AddWithValue("@rightStartPoint", txtRightStartPoint.Text);
    ocm.Parameters.AddWithValue("@rightEndPoint", txtRightEndPoint.Text);
    ocm.Parameters.AddWithValue("@rightHardnessLevel", txtRightHardnessLevel.Text);
    ocm.Parameters.AddWithValue("@reapet", numUpDown.Value);

    ocn.Open();
    ocm.ExecuteNonQuery();
    ocn.Close();

    ocm.Dispose();
    ocn.Dispose();
    }


    حالا مشکلم اینه که وقتی به مرحله Update میرسم داده هایی که تو دیتابیس ذخیره میکنه اشتباست یعنی مثلا فیلد زاویه شروع بازوی راست تو ستون زاویه پایان بازوی راست ذخیره میکنه و همینجور یک فیلد میره جلو یا مثلا سختی بازوی راست تو ستون تکرار ذخیره میشه !
    بعد مشکل دوم اینه که همه رکوردهای جدول رو تغییر میده حتی اونایی که کدهای بیمار متفاوته!
    یه مشکل دیگه هم اینکه بعضی وقتا مثلا تنظیمات بازوی راست رو تعیین می کنم و برای اولین بار ذخیره می کنم بعد دفعه دوم که این تنظیمات بارگزاری شد وقتی مثلا یه فیلدشو تغییر میدم مثلا فیلد زاویه پایان بازوی راست رو تغییر میدم وقتی میره دیتابیس رو آپدیت کنه خطای Data type mismatch in criteria expression میده!
    خیلی عجیبه مشکل کجاست؟
    آخرین ویرایش به وسیله elahe1393 : شنبه 15 شهریور 1393 در 10:19 صبح


  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,918

    نقل قول: update دیتابیس

    این چیزی نمیتونه باشه جز اینکه پارامترها رو دارید پس و پیش ، پاس میدید.

  3. #3

    نقل قول: update دیتابیس

    فکر نکنم چون تمام مقداردهی ها درسته چندین بار چک کردم کل پارامترها درست مقداردهی شده
    در اولین آپدیت فیلدهارو میخواد ذخیره کنه یکی میره جلو تو آپدیت بعدی دوباره یکی میره جلو می خواد ذخیره کنه که مثلا چک باکس رو نمیتونه تو تکست ذخیره کنه خطا میده! بعد مشکل دیگه اینه که وقتی میخواد آپدیت کنه کل رکوردهای جدول تغییر میکنن!
    آخرین ویرایش به وسیله elahe1393 : شنبه 15 شهریور 1393 در 11:02 صبح

  4. #4

    نقل قول: update دیتابیس

    هنوز مشکلم حل نشده نمیدونم ایرادش چیه میشه یه راهنمایی کنید

  5. #5
    مدیر کل سایت آواتار محمد آشتیانی
    تاریخ عضویت
    مهر 1384
    محل زندگی
    تهران
    پست
    1,533

    نقل قول: update دیتابیس

    سلام
    ببینید ، مشکل اینجاست که oledb پارامترها رو بر اساس ترتیب معرفی اونها استفاده میکنه و نه بر اساس اسم پارامتر ها
    این یعنی وقتی شما داری پارامترها رو تعریف میکنی ، دقیقا باید به همون صورت و ترتیب توی کوئریت استفاده کنی و اگر نیازی به پارامتری نداری اصلا تعریفش نکن
    و اینکه شما قبل از همه پارامترها علامت @ رو قراربده.

    شما الان توی هیچ کدوم از کوئری ها ترتیب رو رعایت نکردی و بنابراین تو هردو کوئری باید خطا داشته باشی.
    (مثلا تو کوئری آپدیت ، اولین پارامتر معرفی شده patientCode هست در صورتی که اولین پارامتر استفاده شده leftIsEnabled )

    موفق باشید
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  6. #6

    نقل قول: update دیتابیس

    تشکر مشکلم حل شد

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

  1. ( Insert , Delete , Update ) دیتابیس اکسس
    نوشته شده توسط saeednews در بخش VB.NET
    پاسخ: 16
    آخرین پست: دوشنبه 23 اسفند 1389, 11:04 صبح
  2. Update دیتابیس از طریق DataAdapter
    نوشته شده توسط in_the_rain در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 08 فروردین 1389, 12:17 عصر
  3. مشکل در update دیتابیس
    نوشته شده توسط behzad_lover در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 7
    آخرین پست: چهارشنبه 29 مهر 1388, 13:07 عصر
  4. update دیتابیس با تکست باکس داخل gridview
    نوشته شده توسط majidgh در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: سه شنبه 22 مرداد 1387, 18:10 عصر
  5. عدم Update دیتابیس
    نوشته شده توسط Hossein Bazyan در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 5
    آخرین پست: جمعه 10 اسفند 1386, 12:06 عصر

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

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