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

نام تاپیک: Data set و Data Adapter

  1. #1

    Smile Data set و Data Adapter

    سلام

    SqlCommand com=new SqlCommand();
    DataSet ds = new DataSet();
    string str = "Data Source=نام سرور;initial Catalog=نام دیتابیس;Integrated Security=True";
    con.ConnectionString=str;
    com.Connection=con;
    com.CommandText="select * from نام جدول";
    da.SelectCommand=com;
    da.Fill(ds);
    dataGridView1.DataSource=ds.Tables[0];
    con.Close();

    اگه امکان داره یه توضیحی در مورد Data set یا همون ds و همینطور Data Adapter و () da.fill و
    [0] ds.Table که چه کاری دارن تو این سورس و در کل انجام میدن به هم بدین
    و چگونه با کلیک روی یک command Button داده را از text Box به بانک انتقال بدهم
    اگه یه کد مثل کد بالا هم گذاشتین که خیلی عالی میشه
    آخرین ویرایش به وسیله mehran63 : سه شنبه 13 مهر 1389 در 13:08 عصر

  2. #2
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: Data set و Data Adapter

    سلام دوست عزیز.
    خب باید خیلی خلاصه بگم که DataSet مجموعه ای از DataTable هاست.
    حالا DataTable چیه؟ DataTable شی ای هست که یک جدول رو درون خودش نگهداری میکنه مثلا شما توی SQL میزنی
    SELECT * FROM master
    حالا این دستور به شما یک جدول برمیگردونه و این جدول باید توی برنامه شما یک جایی ذخیره بشه یا Load بشه که وظیفه نگهداری این جدول بر عهده DataTable هست و وظیفه Load کردن این جدول درون DataTable هم بر عهده DataAdapter یا همون da هست. زمانی که شما از دستور Fill استفاده میکنی، DataAdapter دستورات داخل cmd رو به SQL ارسال میکنه و جواب رو در قالب یک جدول دریافت میکنه بعد جواب رو میریزه توی همون DataTable.

    اما ds یا همون DataSet چیه؟
    فرض کنید توی برنامه نیاز دارید که چندین جدول رو به کار ببرید میتونید از دو روش استفاده کنید.
    اول اینکه چندین DataTable تعریف کنید :

    DataTable dt_Master = new DataTable();
    DataTable dt_Users = new DataTable();
    .
    .
    .
    DataTable dt_myTable = new DataTable();
    .
    .
    da.Fill(dt_Master);
    اینکار برای تعداد زیاد Table ها کمی نا معقوله پس باید از شی ای استفاده کرد که مجموعه ای (آرایه ای) از DataTable هاست. این شی DataSet هست.
    کد بالا معادله کد زیر هستش:

    DataSet ds = new DataSet();
    ds.Table.Add("dt_Master");
    ds.Table.Add("dt_Users");
    .
    .
    .
    ds.Table.Add("dt_myTable");
    .
    .
    da.Fill(ds.Table["dt_Master]);
    از DataSet به دو روش میتونی استفاده کنی :
    اول همون روش ایندکس که شماره جدول رو بهش میدی مثل :
    da.Fill(ds.Table[0]);
    دوم استفاده از نام جدول مثل همون مثالی که من زدم.

    در اینجا da دستورات رو اجرا کرده و اطلاعات رو از Data Base واکشی میکنه و اونارو توی جدولی که بهش میدیم میریزه. اون جدول باید از نوع DataTable باشه فرقی هم نمیکنه که از متغیر DataTable استفاده کنی یا از متغیر DataSet استفاده کنی.
    در واقع DataSet مثل استفاده از آرایه ها میمونه.
    دو دستور زیر با هم هیچ فرقی ندارن:

    1:
    String a;
    a = "Hello";

    2:
    String[] a = new String[10];
    a[0]="Hello";
    امیدوارم خوب متوجه شده باشی.
    موفق و پیروز باشی.

  3. #3

    Smile نقل قول: Data set و Data Adapter

    ممنون از این پاسخ
    ولی نگفتی چه جوری داده ها رو از Text Box به بانک اضافه کنم

  4. #4
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: Data set و Data Adapter

    نقل قول نوشته شده توسط mehran63 مشاهده تاپیک
    ممنون از این پاسخ
    ولی نگفتی چه جوری داده ها رو از Text Box به بانک اضافه کنم
    خواهش میکنم.
    خیلی ساده با استفاده از دستورات SQL میتونی اینکارو بکنی.
    یک نمونه مثال میزنم.

    cmd.CommandText = "INSERT INTO myTable(FName, LName, Tel, Gender) VALUES('"
    + txtFName.Text + "','"
    + txtLName.Text + "','"
    + txtTel.Text + "',"
    + cmbGender.SelectedIndex.ToString();
    cmd.ExecuteNonQuery();

  5. #5

    Smile نقل قول: Data set و Data Adapter

    این راه خیلی خوب و فکر کنم تنها راه اصولی هم باشه ولی راه دیگه ای هم هست
    مثلا در VB6 از adodc استفاده میکردیم
    در ضمن برای Delete و Update و ... هم میتوان از همین روش که شما نوشتید استفاده کرد و فقط دستورات رو تو " " دابل کوتیشن گذاشت ؟

  6. #6
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: Data set و Data Adapter

    نقل قول نوشته شده توسط mehran63 مشاهده تاپیک
    این راه خیلی خوب و فکر کنم تنها راه اصولی هم باشه ولی راه دیگه ای هم هست
    مثلا در VB6 از adodc استفاده میکردیم
    در ضمن برای Delete و Update و ... هم میتوان از همین روش که شما نوشتید استفاده کرد و فقط دستورات رو تو " " دابل کوتیشن گذاشت ؟
    بله دوست عزیز برای تمامه دستورا میشه از همین روa استفاده کرد و هیچ محدودیتی نداره.

    مثلا برای Delete :

    cmd.CommandText = "DELETE FROM myTable WHERE ID = " + intID.ToString();
    cmd.ExecuteNonQuery();
    یا مثلا :

    cmd.CommandText = "DELETE FROM myTable WHERE Gender = 1";
    cmd.ExecuteNonQuery();
    و برای ویرایش هم :

    cmd.CommandText = "UPDATE myTable SET FName='"
    + txtFName.Text + "' WHERE ID=" + intID.ToString();
    cmd.ExecuteNonQuery();

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

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