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

نام تاپیک: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

  1. #1
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    دوستان من يه برنامه نوشتم كه ديتا بيسش اكسس هست ولي نمي دونم چرا نمي تونم درج كنم

    using
    System.Data;

    using
    System.Data.OleDb;

    اين كد ها را در قسمت

    public
    partialclassmain : Form


    OleDbConnection my_cn = newOleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = |DataDirectory|\\DB.mdb; Persist Security Info = True");
    OleDbDataAdapter da;
    DataSet ds = newDataSet();
    DataView dv = newDataView();


    اين كد ها را هم در قسمت فرم لود نوشتم


    my_cn.Open();
    da = newOleDbDataAdapter("select * from Table1", my_cn);
    da.Fill(ds, "Table1");
    dv.Table = ds.Tables["Table1"];


    ديتا بيس در كنار فايل اجرايي قرار دارد و داراي چهار فيلد مي باشد . كه اسم اونا url , user , password , email هست. اسم تيبل هم table1 هست.

    اين كد ها را هم در درون دكمه add نوشتم


    OleDbCommand cm = newOleDbCommand();
    cm.CommandText = "insert into Table1(URL,USER,PASSWORD,EMAIL) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')";
    cm.Connection = my_cn;
    cm.ExecuteNonQuery();
    textBox1.Text = "";
    textBox2.Text = "";
    textBox3.Text = "";
    textBox4.Text = "";

    وقتي كه مقادير textbox ها را وارد مي كنم . و روي add كليك مي كنم با ارور زير مواجه ميشوم . لطفا راهنمايي كنيد كه اشكال كار از كجاست.



    آخرین ویرایش به وسیله debugger : شنبه 22 فروردین 1388 در 13:01 عصر

  2. #2

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    سلام دوست عزيز كد هاي زير رو امتحان كن





    private void SetBindings(DataSet ds)
    {
    bsCategories.DataSource = ds;
    bsCategories.DataMember = "Table1";
    bsCategories.ResetBindings(false);
    }


    private ADODB.Connection CreateConnection()
    {
    string dsStr;
    string dsCn;
    ADODB.Connection cn;

    cn = new ADODB.Connection();
    dsStr = "F:\\myProject\\DataBase\\DB1.mdb";
    dsCn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dsStr + ";";
    cn.ConnectionString = dsCn;

    return cn;
    }
            private void btnOpen_Click(object sender, EventArgs e)
    {
    ADODB.Recordset rs;
    ADODB.Connection cnADO;
    OleDbDataAdapter daTemp;

    rs = new ADODB.Recordset();
    cnADO = CreateConnection();
    daTemp = new OleDbDataAdapter();

    cnADO.Open("", "", "", 0);
    rs.Open("SELECT * FROM Table1", cnADO,
    ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly, 0);
    daTemp.Fill(dsCategories.Table1, rs);

    cnADO.Close();

    SetBindings(dsCategories);
    }
    واسه ذخيره كردن

    private void btnUpdate_Click(object sender, EventArgs e)
    {
    ADODB.Recordset rsADO;
    ADODB.Connection cnADO;

    rsADO = new ADODB.Recordset();
    cnADO = CreateConnection();

    cnADO.Open("", "", "", 0);

    rsADO.ActiveConnection = cnADO;
    rsADO.Open("Select * From Table1", cnADO,
    ADODB.CursorTypeEnum.adOpenDynamic,
    ADODB.LockTypeEnum.adLockOptimistic, 0);

    rsADO.AddNew(Type.Missing, Type.Missing);
    rsADO.Fields["FirstName"].Value = "Test";
    rsADO.Fields["LastName"].Value = "Description";
    rsADO.Update(Type.Missing, Type.Missing);

    MessageBox.Show("Finished", "DataBase Update");

    rsADO.Delete(ADODB.AffectEnum.adAffectCurrent);
    rsADO.Close();
    cnADO.Close();
    }

  3. #3
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    دوست عزيز ممنون از پاسخ شما

    ولي كد هايي كه من نوشتم هم بايد درست كار كنند . چون از لحاظ منطقي هيچ مشكلي وجود نداره . ميخوام اشكال كار را پيدا كنم

    لطفا دوستان راهنمايي بيشتري بكنند . ممنونم

  4. #4
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    دوستان من كد ها را عوض كردم و بدين صورت هم نوشتم

    در قسمت
    public
    partialclassmain : Form



    string strSql;
    string strCon;
    DataSet ds = newDataSet();
    OleDbConnection Con = newOleDbConnection();
    OleDbDataAdapter da = newOleDbDataAdapter();
    DataRow newRow;
    OleDbCommandBuilder cb = newOleDbCommandBuilder();

    در فرم لود

    privatevoid main_Load(object sender, EventArgs e)
    {

    strCon =
    "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = |DataDirectory|\\DB.mdb; Persist Security Info = True";
    strSql =
    "Select * from Table1";
    Con =
    newOleDbConnection(strCon);
    Con.Open();
    da =
    newOleDbDataAdapter(strSql, Con);
    da.Fill(ds,
    "Table1");
    }
    در داخل دكمه add كد هاي زير را نوشتم

    newRow = ds.Tables[
    "Table1"].NewRow();
    newRow[
    "Url"] = textBox1.Text.ToString();
    newRow[
    "User"] = textBox2.Text.ToString();
    newRow[
    "Password"] = textBox3.Text.ToString();
    newRow[
    "Email"] = textBox4.Text.ToString();
    ds.Tables[
    "Table1"].Rows.Add(newRow);
    cb =
    newOleDbCommandBuilder(da);
    da.InsertCommand = cb.GetInsertCommand();
    da.Update(ds,
    "Table1");
    Con.Close();
    textBox1.Text =
    "";
    textBox2.Text =
    "";
    textBox3.Text =
    "";
    textBox4.Text =
    "";

    حال موقع اجرا كردن با ارور زير مواجه ميشوم



    دوستان عزيز لطفا كمك كنيد اين ارور داره روي مغز من راه ميره

  5. #5

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    عزیز جون نام فیلد User از کلمات رزرو شده تو Access هستش اونو عوض کن کارت راه می افته می تونی بری تو Help Access و نگاه کنی ببینی که کدو یکی از سایر فیلدهات اسمش از کلمات رزرو شده هستش اگه بود اونارو هم عوض کن برای دیدن کلمات رزرو شده برو تو راهنمای Accessو عبارت reserved رو جستجو کن همشو میاره من خودم هم یه مدت گیر این ارور افتاده بودم باز هم مشکلی بود در خدمتم

  6. #6
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    من اسم فيلد ها را تغيير دادم


    privatevoid button1_Click(object sender, EventArgs e)
    {
    newRow = ds.Tables[
    "Table1"].NewRow();
    newRow[
    "SiteURL"] = textBox1.Text.ToString();
    newRow[
    "UserName"] = textBox2.Text.ToString();
    newRow[
    "Password"] = textBox3.Text.ToString();
    newRow[
    "EmailAddress"] = textBox4.Text.ToString();
    ds.Tables[
    "Table1"].Rows.Add(newRow);
    cb =
    newOleDbCommandBuilder(da);
    da.InsertCommand = cb.GetInsertCommand();
    da.Update(ds,
    "Table1");
    Con.Close();
    textBox1.Text =
    "";
    textBox2.Text =
    "";
    textBox3.Text =
    "";
    textBox4.Text =
    "";
    }
    ولي مشكل همچنان بر جاست

    من فكر مي كنم VS2008 با Access مشكل اساسي دارد. شما خودتون از همين كد هاي من استفاده كنيد و با اكسس هم جدول را بسازيد . ببينيد اصلا كار مي كنه يا نه ؟؟؟؟


  7. #7
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    سلام
    شما هنگام ارسال دستور به Access همه فیلدها را رشته ای وارد کرده اید!
    لطفا ساختار جدول Table1 را قرار دهید

  8. #8

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    عزیز جون مگه من نگفتم که تمامی نام فیلدهاتو چک کن باز هم که فیلد Password یک کلمه رزرو شده است بابا جون اسم فیلدهاتو فارسی بنویس مثلا به جای این اسم بنویس Ramz مجبور نیستی که انگلیسی انتخاب کنی در ضمن خودت هم می تونی از طریق راهنمای اکسس چک کنی که اسم فیلد تو لیست کلمات رزرو شده هستش یا نه اگه همه فیلدهات اسمشون تو لیست کلمات رزرو شده نبود اون وقت برنامه رو دوباره امتحان کن من مطمئن هستم به خاطر این هستش که تو به این ارور بر می خوری

  9. #9

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    مشکلتون درست شد

  10. #10
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    نقل قول نوشته شده توسط rezatati مشاهده تاپیک
    عزیز جون مگه من نگفتم که تمامی نام فیلدهاتو چک کن باز هم که فیلد Password یک کلمه رزرو شده است بابا جون اسم فیلدهاتو فارسی بنویس مثلا به جای این اسم بنویس Ramz مجبور نیستی که انگلیسی انتخاب کنی در ضمن خودت هم می تونی از طریق راهنمای اکسس چک کنی که اسم فیلد تو لیست کلمات رزرو شده هستش یا نه اگه همه فیلدهات اسمشون تو لیست کلمات رزرو شده نبود اون وقت برنامه رو دوباره امتحان کن من مطمئن هستم به خاطر این هستش که تو به این ارور بر می خوری
    درسته عزيز . حق با شما بود . بالاخره اين مشكل حل شد

    از شما و تمامي دوستان نهايت تشكر را دارم

  11. #11

    نقل قول: مشكل در ذخيره كردن اطلاعات در ديتا بيس اكسس

    آقا یکی هم من را راهنمایی کنه.من در ایتصال به بانک و حذف و اضافه و جستجو و فبلتر مشکل دارم لطفا یه مثال کامل دراین باره به من بفرستید وایمیل من MAHDIhp.devsc@gmail.com متشکر می شم.

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

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