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

نام تاپیک: عدم تغییر دیتابیس پروژه بعد از اعمال تغییر در برنامه

  1. #1
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    Question عدم تغییر دیتابیس پروژه بعد از اعمال تغییر در برنامه

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


    حالا سوالم:
    یه دیتابیس اکسس دارم که با oledb بهش وصل شدم و داده هاشو توی یک datagridview نشون میدم.
    یه دکمه دارم که با زدن داده به dataadapter اضافه میکنه و توی datagridview نشون میده. ولی این تغییر توی دیتابیس اعمال نمیشه.
    چیکار کنم؟

    یه همچین کوئری میخوام اجرا بشه:
     OleDbConnection aaa = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0  ;Data Source=|DataDirectory|\\Office_Assistant.accdb");
    aaa.Open();


    string query = "INSERT INTO engineers(Engineer_File_NO, Engineer_Base,Engineer_Field,Engineer_Name,Enginee r_Family,Engineer_Phone, Engineer_BankAccount) VALUES(5,5,\"aa\",\"qqqq\",\"qqqq\",9,9)";
    OleDbCommand command = new OleDbCommand();
    command.CommandText = query;
    command.Connection = aaa;
    OleDbDataAdapter adapter = new OleDbDataAdapter();
    adapter.SelectCommand = command;
    DataTable objDataTable = new DataTable();
    adapter.Fill(objDataTable);


    aaa.Close();


    با تشکر

  2. #2
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: database __ datagridview

    با سلام
    مگر برای ثبت در دیتابیس نباید از قطعه کد زیر استفاده کنید:
     command.ExecuteNonQuery();

  3. #3
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: database __ datagridview

    شما می خواین ورود اطلاعات به دیتابیس رو با
    adapter.Fill(objDataTable);
    انجام بدید؟؟؟ اینکه اشتباهه



    aaa.Open();


    string query = "INSERT INTO engineers(Engineer_File_NO, Engineer_Base,Engineer_Field,Engineer_Name,Enginee r_Family,Engineer_Phone, Engineer_BankAccount) VALUES(5,5,\"aa\",\"qqqq\",\"qqqq\",9,9)";
    OleDbCommand command = new OleDbCommand();
    command.CommandText = query;
    command.Connection = aaa;
    command.ExecuteNonQuery();
    aaa.Close();

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: database __ datagridview

    سلام.
    ممنون از پاسختون. ولی همچنان مشکل پا برجاست. تغییری که انجام میدم توی گریدویو نشون داده میشه ولی روی دیتابیس اعمال نمیشه!!!
    adapter.Fill(objDataTable);



    دقیقا کار این کد چیه؟

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

    نقل قول: database __ datagridview

    اون کد باعث میشه اطلاعات از datapter در جدولی به نام objdadtatable پر شود.
    کد زیر رو قرار بده و نتیجه رو بگو :
    int Engineer_File_NO = 5;
    int Engineer_Base = 5;
    string Engineer_Field = "\"aa\"";
    string Engineer_Name = "\"qqqq\"";
    string Engineer_Family = "\"qqqqq\"";
    int Engineer_Phone=9;
    int Engineer_BankAccount = 9;

    string sql = "INSERT INTO engineers(Engineer_File_NO, Engineer_Base,Engineer_Field,Engineer_Name,Enginee r_Family,Engineer_Phone, Engineer_BankAccount)" +
    " values ({0},{1},'{2}','{3}','{4}',{5},{6})";

    sql = string.Format(sql,
    Engineer_File_NO, Engineer_Base, Engineer_Field, Engineer_Name, Engineer_Family, Engineer_Phone, Engineer_BankAccount);

    com.CommandText = sql;

    con.Open();
    com.ExecuteNonQuery();
    con.Close();

  6. #6
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: database __ datagridview

    خطایی با مضمون زیر میده:ExecuteNonQuery: Connection property has not been initialized.


    در مورد کدی که گذاشتید: جایی که دارید کوئری مینویسید بعد از values مفهوم {0} و .. چیه؟

    خیلی ممنون

  7. #7
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: database __ datagridview

    کانکشنتون تنظیم نشده
      command.Connection = aaa;

    این خط رو اضافه کن....
    {0} و {1} و ... برای خوانایی بیشتره... فرمت بندی اسسترینگ...
     
    string sql = "INSERT INTO engineers(Engineer_File_NO, Engineer_Base,Engineer_Field,Engineer_Name,Enginee r_Family,Engineer_Phone, Engineer_BankAccount)" +
    " values ({0},{1},'{2}','{3}','{4}',{5},{6})";

    sql = string.Format(sql,
    Engineer_File_NO, Engineer_Base, Engineer_Field, Engineer_Name, Engineer_Family, Engineer_Phone, Engineer_BankAccount);


    این دو تا خط در کل اینکار رو می کنه برات .... مقدار Engineer_File_NO رو میزاره جای {0} و .....

  8. #8
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: database __ datagridview

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

  9. #9
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: database __ datagridview

    کل کدهایی رو که بعد از اصلاح برای ثبت اجرا میکنین رو اینجابذارین و همچنین تصویری از دیتابیس و جدولتون رو هم قرار بدین.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: database __ datagridview

    کل کدی که اجرا میشه بعد از زدن یک دکمه است:
    OleDbConnection aaa = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0  ;Data Source=|DataDirectory|\\Office_Assistant.accdb");
    OleDbCommand command = new OleDbCommand();
    command.Connection = aaa;
    int Engineer_File_NO = 5;
    int Engineer_Base = 5;
    string Engineer_Field = "aa";
    string Engineer_Name = "qqqq";
    string Engineer_Family = "qqqqq";
    int Engineer_Phone = 9;
    int Engineer_BankAccount = 9;

    string sql = "INSERT INTO engineers(Engineer_File_NO, Engineer_Base,Engineer_Field,Engineer_Name,Enginee r_Family,Engineer_Phone, Engineer_BankAccount)" +
    " values ({0},{1},'{2}','{3}','{4}',{5},{6})";

    sql = string.Format(sql,
    Engineer_File_NO, Engineer_Base, Engineer_Field, Engineer_Name, Engineer_Family, Engineer_Phone, Engineer_BankAccount);

    command.CommandText = sql;

    aaa.Open();
    command.ExecuteNonQuery();
    aaa.Close();

    این تغییرات بعد از یک بار زدن دکمه ی دیگه توی گریدویو نشون داده میشن. ولی روی دیتا بیس اعمال نمیشن.
    کد کلید دوم:
     OleDbConnection aaa = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0  ;Data Source=|DataDirectory|\\Office_Assistant.accdb");
    aaa.Open();
    string query = "select * from Engineers";
    OleDbCommand command = new OleDbCommand();
    command.CommandText = query;
    command.Connection = aaa;
    OleDbDataAdapter adapter = new OleDbDataAdapter();
    adapter.SelectCommand = command;
    DataTable objDataTable = new DataTable();
    adapter.Fill(objDataTable);
    aaa.Close();
    dataGridView1.DataSource = objDataTable;


    اینم عکس دیتابیس:
    Capture.JPG

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

    نقل قول: database __ datagridview

    یعنی شما فقط این کد رو اجرا میکنی چیزی در دیتابیس ذخیره نمیشه؟ و خطایی هم نشون نمیده؟
    OleDbConnection aaa = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0  ;Data Source=|DataDirectory|\\Office_Assistant.accdb");
    OleDbCommand command = new OleDbCommand();
    command.Connection = aaa;
    int Engineer_File_NO = 5;
    int Engineer_Base = 5;
    string Engineer_Field = "aa";
    string Engineer_Name = "qqqq";
    string Engineer_Family = "qqqqq";
    int Engineer_Phone = 9;
    int Engineer_BankAccount = 9;

    string sql = "INSERT INTO engineers(Engineer_File_NO, Engineer_Base,Engineer_Field,Engineer_Name,Enginee r_Family,Engineer_Phone, Engineer_BankAccount)" +
    " values ({0},{1},'{2}','{3}','{4}',{5},{6})";

    sql = string.Format(sql,
    Engineer_File_NO, Engineer_Base, Engineer_Field, Engineer_Name, Engineer_Family, Engineer_Phone, Engineer_BankAccount);

    command.CommandText = sql;

    aaa.Open();
    command.ExecuteNonQuery();
    aaa.Close();



    در ضمن تصویر تعریف جدول را بذارین نه دیتای جدول. اون قسمتی که جدول رو تعریف میکنین و نوع ستونها رو مشخص میکنین.

  12. #12
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: database __ datagridview

    دقیقا عین کدی که اجرا میکنم را گذاشتم. هیچ کار دیگه ای هم نمیکنم. ولی دیتابیس تغییر نمیکنه!!!!!!!!!!
    واقعا گیج شدم. از شما هم بسیار متشکرم که دارید وقت میگذارید
    اینم عکس دیتابیس:
    Capture.JPG

  13. #13
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: database __ datagridview

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

    بازم بسیار ممنون از کمکتون دوستان.

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

  1. پاسخ: 3
    آخرین پست: جمعه 17 خرداد 1392, 13:06 عصر
  2. سوال: عدم ذخیره مقادیر عناصر بعد از تغییر
    نوشته شده توسط AmirSky در بخش jQuery
    پاسخ: 5
    آخرین پست: دوشنبه 11 دی 1391, 14:07 عصر
  3. پاسخ: 1
    آخرین پست: دوشنبه 07 فروردین 1391, 00:53 صبح
  4. سوال: تغییر نکردن پروژه بعد از update کردن database
    نوشته شده توسط mehrdad85 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 16 اسفند 1389, 16:40 عصر
  5. recno,recount,و چگونگی refresh کردن table بعد از اعمال تغییر
    نوشته شده توسط reza5 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 25 مهر 1382, 12:38 عصر

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

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