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

نام تاپیک: DataGridView و آپديت(ذخيره) TableAdapter

  1. #1
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351

    Question DataGridView و آپديت(ذخيره) TableAdapter

    سلام دوستان . لطفا كمكم كنيد !
    خيلي سادست :
    من يه بانك دارم كه يه جدول داره و به يك DataGridView وصل است و وقتي بصورت دستي اطلاعات آن را دستكاري مي‌كنم و مي‌خواهم آن را ذخيره كنم از دستور :
    TableAdapter.Update(DataSet
    استفاده مي‌كنم . ولي ارور ميده ، ولي قبلا نمي‌داد !
    براي اينكه ارور نده بايد بوسيله‌ي يك كد يك رديف و چيزي شبيه به آن به Dataset اضافه كرد تا در مقابل دستور بالا ارور ندهد مثل :
    DataSet.TabelName1.Rows.Add("ali") ******HELP


  2. #2
    کاربر دائمی آواتار masoodp666
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    پست
    115
    براي اينكه ارور نده بايد بوسيله‌ي يك كد يك رديف و چيزي شبيه به آن به Dataset اضافه كرد تا در مقابل دستور بالا ارور ندهد
    در صورتیکه هیچ داده ای هم در DataSet دستکاری نشه وقت آپديت کردن نباید هیچ Error ای بده.
    کمی بیشتر توضیح بدید.

  3. #3
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351
    نقل قول نوشته شده توسط masoodp666 مشاهده تاپیک
    در صورتیکه هیچ داده ای هم در DataSet دستکاری نشه وقت آپديت کردن نباید هیچ Error ای بده.
    کمی بیشتر توضیح بدید.
    سلام و تشكر بسيار از شما
    اين پروژه را دانلود كن حجمش 100 كيلو بايته ببين مالتو هم همين طوره يا نه
    اگه براي تو هم ارور داد كدش همراهشه يه نگاه بهش بنداز اگه نشد يكي خودت برام ضميمه كن
    خيلي خيلي ببخشي . با ويژوال استديو 2005
    درضم بانك اصلاعاتيش رو بايد تو درايو C كپي كني تا باز بشه
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    کاربر دائمی آواتار masoodp666
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    پست
    115
    مشکل برنامت اینه که دستور UpdateCommand رو ست نکردی توی فایل AliDataSet.xsd در قسمت T1TableAdapter

    من بانک تو دیدم از Access استفاده کردی.
    در صورتیکه از SQL استفاده کنی خودش همه ی دستوراتو (update , insert , delete) با این روش Drag and Drop کردن، توليد می کنه.

    ولی با اکسس نمیکنه. نمیدونم چرا

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

  5. #5
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351
    تشكر مشكلشو حل كردم
    مرسي

    بعد منظورت چي بود كه گفتي از Access استفده كردي و ميبايست از SQL استفاده كني ، بعد مگه Acces خودش زير مجموعه SQL نيست
    ميشه يه پروژه كوچيك از همون كه گفتي برام بزاري
    خيلي
    خيلي
    ممنون ميشم

    بعد ، من خودم قبلا از دستورهايي مثل زير استفاده ميكردم كه خيلي وقت گير بود و تازه اين روش بالا رو تست كردم بودم كه ارور داد
    ولي با دستورات زير ميشود مانور بيشتري داد . نظر شما چيه اصلا اين كدها درسته يا نه ؟!

    select :

            DataSet1.Clear()

    OleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM SH WHERE Daterooz = '" & LDate.Text & "' AND name = '" & ComboBoxSetTime.Text & "'"

    OleDbDataAdapter1.Fill(DataSet1)

    Dim dataTable As DataTable = DataSet1.Tables(0)


    update :

            OleDbDataAdapter1.UpdateCommand.CommandText = "UPDATE SH SET Timeexit = '" & Ltime.Text & "' , Settime = '" & time & "' WHERE name = '" & ComboBoxSetTime.Text & "' AND Daterooz = '" & LDate.Text & "'"

    OleDbDataAdapter1.UpdateCommand.ExecuteNonQuery()


    insert :

            OleDbDataAdapter1.InsertCommand.CommandText = "INSERT INTO SH(name, Daterooz, Timeenter)VALUES( '" & ComboBoxSetTime.Text & "' , '" & LDate.Text & "' , '" & Ltime.Text & "' )"

    OleDbDataAdapter1.InsertCommand.ExecuteNonQuery()
    آخرین ویرایش به وسیله ALI TT : سه شنبه 17 اردیبهشت 1387 در 01:25 صبح

  6. #6
    کاربر دائمی آواتار masoodp666
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    پست
    115
    ميبايست از SQL استفاده كني
    من نگفتم می بایست. گفتم اگه....

    ميشه يه پروژه كوچيك از همون كه گفتي برام بزاري
    منظورت یه پروژه که با Drag and Drop آبجکتها، با SQL ارتباط برقرار کرده یا به صورت دستی ؟

    در مورد دستوراتی که نوشتی باید بگم که اولا این دستورات مربوط به چه قسمتی از پروژه ست ؟ آیا همه رو دستی نوشتید ؟

    OleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM SH WHERE Daterooz = '" & LDate.Text & "' AND name = '" & ComboBoxSetTime.Text & "'"
    توی دستوراتی که مستقیم توی کد برنامه نوشته میشه دستورات باید بین دوتا " قرار بگیرند. یعنی اینجوری:

    OleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM SH WHERE Daterooz =" & LDate.Text & " AND name = " & ComboBoxSetTime.Text
    برای دستورات update و insert هم همینجوری عمل کن.
    یه نمونه کد که با SQL ارتباط برقرار کرده :

    Dim cn As New SqlConnection("Data Source=.;Initial Catalog=DB Name;Integrated Security=True")
    Dim sqlda As New SqlDataAdapter
    Dim DS As New DataSet
    Dim t As New DataTable("question")
    DS.Tables.Add(t)
    Dim c1 As New DataColumn("qpriority", GetType(Short))
    t.Columns.Add(c1)
    Dim c2 As New DataColumn("fid", GetType(Short))
    t.Columns.Add(c2)
    Dim c3 As New DataColumn("qid", GetType(Short))
    t.Columns.Add(c3)
    Dim c4 As New DataColumn("question", GetType(String))
    t.Columns.Add(c4)
    Dim c5 As New DataColumn("anstype", GetType(String))
    t.Columns.Add(c5)

    Dim col(0) As DataColumn
    col(0) = c3
    t.PrimaryKey = col

    DataGridView1.DataSource = t

    Dim cmd1 As New SqlCommand
    cmd1.Connection = cn
    cmd1.CommandType = CommandType.Text
    cmd1.CommandText = "select * from ......"
    sqlda.SelectCommand = cmd1
    Dim b As New SqlCommandBuilder(sqlda)
    sqlda.Fill(DS.Tables("question"))
    این دستوره:
    Dim b As New SqlCommandBuilder(sqlda)
    باعث ساخته شدن دستورات insert , update , delete میشه. فقط کافیه یه آبجکت ازش بسازی.
    توی Access هم همینطوریه فقط با این فرق که از Jet 4.0 , Provider استفاده میشه.
    آخرین ویرایش به وسیله masoodp666 : سه شنبه 17 اردیبهشت 1387 در 11:08 صبح

  7. #7
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351
    در مورد دستوراتی که نوشتی باید بگم که اولا این دستورات مربوط به چه قسمتی از پروژه ست ؟ آیا همه رو دستی نوشتید ؟
    بله خودم نوشتم و در قسمت رويداد ها ، مثلا رويداد كليك باتون، اين روش select رو من يه جايي توي يه CD ديدم كه استفاده شده بود (CD آموزشي)

    اينم يه برنامه براي دفترچه تلفنه همينطوري از رو همون CD آموزشي درست كردم .
    البته اون يه برانامه براي نگه داري ليست كتابها بود و من ابتكاري اينو درست كردم .

    روش كار با برنامه !!!!!!!!!!! :
    ـــــ وقتي بازش ميكني آدرس يه بانك رو مي‌خواد كه اسمش PN.mdb هستش(توي همون فايل گذاشتم) ، بش بده
    ـــــ بعد برنامه كه اومد بالا روي دكمه Show كليك كن ، تمام اطلاعات بانك مياد اونجا
    ـــــ براي جستجو نام ، نام خانوادگي را در قسمت مربوط وارد و بروي find كليك كن . درضم اين برنامه با نام خانوادگي سرچ ميكنه و اگه چند نفر هم، هم نام باشند توي DataGrid همه را نمايش ميده
    براي insert و update و ... . همون نام رو كه سرچ كردي ميتوان تغيير داد و سپس update كرد و ...... تا آخر

    درضم بايد بگم كه اينجا من dataadapter رو از توي منوي tool و choose tol box item به تول باكس اضافه كردم چون خودش يه Data Adapter ديگه داره......
    و dataGridView هم نداره به جاش DataGrid استفاده شده

    يه چيز ديگه

    منظورت یه پروژه که با Drag and Drop آبجکتها، با SQL ارتباط برقرار کرده یا به صورت دستی ؟
    منظورم هم Drag and Drop و هم نوشتن كد بصورت دستي .
    ولي دوميه رو بيشتر مي‌خوام
    یا به صورت دستی
    Dim b As New SqlCommandBuilder(sqlda)
    باعث ساخته شدن دستورات insert , update , delete میشه. فقط کافیه یه آبجکت ازش بسازی.
    توی Access هم همینطوریه فقط با این فرق که از Jet 4.0 , Provider استفاده میشه.
    اگه از اين يه پروژه داري برام ميزاريي

    از توجه شما ممنون منتظر جوابتان هستم .
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی آواتار masoodp666
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    پست
    115
    من تقریبا کل پروژه رو گذاشتم !
    اون کدی رو که من اون بالا برات گذاشتم جواب همه سوالاتتو میده. نمیدونم منظورت چیز دیگه ست ؟
    کافیه اون رو توی رویداد Load فرمت بنویسی و یه DataGridView بندازی روی فرمت. همین.

  9. #9
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351
    بله ، جواب داد واقعا ممنون

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

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