نمایش نتایج 1 تا 40 از 45

نام تاپیک: ADO.NET در دات نت

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Lightbulb اساس Load كردن اطلاعات

    اولين كاري كه معمولاً در يك برنامه پايگاه داده انجام ميشه بارگذاري اطلاعات از جدول بانك اطلاعاتي به يك كنترل نمايش دهنده مثل DataGridView هستش تا كاربر بتونه اطلاعاتي رو كه ثبت كرده رو ببينه. براي انجام اين كار بايد چند مرحله انجام بشه تا اطلاعات از جدول به DataGridView منتقل بشه.
    • ايجاد رشته اتصال و ارتباط بين برنامه و پايگاه داده
    • دستور فراخواني اطلاعات (ركورد ها)
    • حمل ركورد ها از جدول به برنامه
    ADO.NET براي اين كار چندين شي رو در اختيار شما قرار مي ده كه اگه به ترتيب اجرا بشن اين عمل انجام مي پذيره. براي روشن شدن مطلب به شكل بسيار ساده زير توجه كنيد:

    خطي كه بين برنامه و پايگاه داده كشيده شده باعث ميشه كه برنامه با پايگاه داده ارتباط برقرار كنه.
    اون آدمك كوچيكه اسمش sqlCommand هستش. كسي هستش كه دستور مي ده. اين آدمك مي گه كه براي من برو اطلاعات رو بازيابي كن اما چون خودش قدرت نداره به اون آدمك بزرگه مي گه كه اين كار رو انجام بده. اون آدمك بزرگه اسمش sqlDataAdapter هستش. sqlDataAdapter مياد دستور مورد نظر رو از sqlCommand ميگيره و ازش يه آدرس هم مي پرسه. اون آدرس sqlConnection هستش كه sqlDataAdapter بايد بره از اين آدرس اطلاعات رو دريافت كنه.
    پس آدمك بزرگه يعني sqlDataAdapter بهش گفتن كه از آدرس sqlConnection برو و دستور sqlCommand رو اجرا كن و اطلاعات رو بيار. sqlDataAdapter اين كار رو مي كنه و اطلاعات رو مياره به يه انبار به اسم DataSet. اين انبار دقيقاً همون Database هستش. با همون جدول ها، با همون فيلد ها، با همون اطلاعات!
    اين كار چه مزيتي داره؟ مزيتش اينه كه برنامه با DataBase درگير نميشه بلكه برنامه با DataSet كار مي كنه به همين دليل براي نمايش اطلاعات بايد اين دفعه بريم سراغ DataSet. خوب حالا ديگه كار خاصي نمونده DataSet به DataGridView وصل ميشه و اطلاعات نمايش داده ميشه.
    اين پايه و اساس كار هستش حالا بريم اين مباني رو با كدنويسي پياده سازيش كنيم.
    عکس های ضمیمه عکس های ضمیمه

  2. #2

    Lightbulb NameSpace هاي ADO.NET

    براي اجراي دستورات و انجام چهار عمل اصلي در برنامه هاي پايگاه داده اي يعني نمايش، درج، حذف و ويرايش بايد دو NameSpace رو در خارج از كلاس برنامه يعني قسمت Declaration برنامه تعريف كنيم:

    در #C:

    using System.Data;
    using System.Data.SqlClient;


    در VB.NET:

    Imports System.Data
    Imports System.Data.SqlClient

  3. #3

    Lightbulb ايجاد رشته اتصال و برقراري ارتباط با پايگاه داده

    براي ايجاد ارتباط با پايگاه داده نياز به يك رشته اتصال هستش. اين رشته ي اتصال درون يك Refrence از شي sqlConnection قرار ميگيره. همون طور كه اشاره كردم ما بايد يك Refrence داشته باشيم تا بتونيم اين رشته رو ايجاد كنيم:
    در #C:

    SqlConnection cnn = newSqlConnection();

    در VB.NET:

    Dim cnn AsNew SqlConnection

    Refrence مورد نظر ما اسمش رو من cnn گذاشتم. اين cnn خودش يه خاصيتي داره به اسم ConnectionString كه باعث ميشه اون رشته اتصال ساخته بشه:
    در #C:

    cnn.ConnectionString = "Data Source=COMPUTER1;initial catalog=StorDB ;User ID = Barnamenevis ;Password=ObalitjoOon;";

    در VB.NET:

    cnn.ConnectionString = "Data Source=COMPUTER1;Initial Catalog=StorDB ;User ID = Barnamenevis ;Password=ObalitjoOon"


    Data Source: نام كامپيوتر يا سروري هستش كه پايگاه داده در اون قرار گرفته و يا از اون نگه داري ميشه. مثلا اسم كامپيوتري كه من باهاش كار مي كنم COMPUTER1 هستش.
    Initial Catalog: اسم پايگاه داده اي هستش كه قراره باهاش كار كنم. پايگاه داده اي كه من باهاش كار مي كنم StorDB هستش.
    User ID: نام كاربري پايگاه داده هستش.
    Password: رمز عبور پايگاه داده هستش.
    درصورتيكه شما براي پايگاه داده خودتون هيچ User ID و password در نظر نگرفتين مي تونيد اين قسمت رو حذف و از Integrated Security استفاده كنيد:
    در #C:

    cnn.ConnectionString = "Data Source=Computer1;initial catalog=StorDB ;integrated security=true;";

    در VB.NET:

    cnn.ConnectionString = "Data Source=COMPUTER1;Initial Catalog=StorDB;Integrated Security=True"

    با استفاده از اين دستورات شما مي تونيد با پايگاه داده ارتباط برقرار كنيد.

  4. #4

    Lightbulb باز و بستن پايگاه داده

    با استفاده از دستورات پست قبلي شما تونستيد با پايگاه داده ارتباط برقرار كنيد اما اين رو در نظر داشته باشيد كه فقط ارتباط برقرار كرديد. يعني فايل پايگاه داده مورد نظر شما هنوز باز نشده. براي اين كار از متد Open شي sqlConnection استفاده مي كنيم:
    در #C:

    cnn.Open();

    در VB.NET:

    cnn.Open()


    شعار هميشگي كار با فايل ها: هر فايلي كه باز ميشه بايد بسته بشه. براي بستن فايل پايگاه داده از متد Close استفاده مي كنيم:
    در #C:

    cnn.Close();

    در VB.NET:

    cnn.Close()

  5. #5

    Lightbulb روال و متد Connect

    در كد نويسي بايد سعي كنيد تا جايي كه ممكن هست از تكرار پرهيز كنيد پس براي اينكه در كلاسهاي مختلف برنامه از كد نويسي اضافي پرهيز كرده باشيم ميايم يه روال در VB و يه متد در #C مي نويسيم تا كار برقراري ارتباط با پايگاه داده رو انجام بده. بعداً با اين پست زياد كار ميكنيم.
    در #C:

    public void Connect()
    {

    SqlConnection
    cnn =
    newSqlConnection();
    cnn.ConnectionString = "Data Source=Computer1;initial catalog=StorDB ;integrated security=true;";
    }

    در VB.NET:

    PrivateSub Connect()
    Dim cnn As New SqlConnection
    cnn.ConnectionString = "Data Source=COMPUTER1;Initial Catalog=StorDB ;Integrated Security=True"
    EndSub

    حالا در هرجاي برنامه براي اينكه بخوام ارتباط با پايگاه داده برقرار كنم () Connect رو صدا مي زنم:
    در #C:

    Connect();

    در VB.NET:

    Connect()

  6. #6

    Lightbulb شي sqlCommand، آدمك زورگو

    براي استفاده از دستورات SQL جهت فراخواني اطلاعات جدول در برنامه، بايد از شي sqlCommand استفاده كنيم. ما در كل نياز به دو چيز داريم:
    1. دستور SQL مورد نظر
    2. آدرس جدول پايگاه داده
    براي اين كار بايد يه object از شي sqlCommand داشته باشيم:
    در #C:

    sqlCommand cmd = new sqlCommand();

    در VB.NET:

    Dim cmd As New sqlCommand

    اين دستور باعث ميشه كه يه Refrence جديد در برنامه به اسم cmd ساخته بشه. حالا براي اينكه ما يه دستور SQL رو به اين Refrence ارجاع بديم بايد از خاصيت CommandText اون استفاده كنيم. حالا من مي خوام با استفاده از خاصيت CommandText اطلاعات جدول رو در فراخواني كنم:
    در #C:

    cmd.CommandText = "select * from Table";

    در VB.NET:

    cmd.CommandText = "select * from Table"

    در واقع با دستور بالا اون آدمك كوچيكه كه اسمش sqlCommand بود داره به cmd مي گه كه برام اطلاعات جدول Table رو Select كن. حالا cmd بهش مي گه كه از كجا برم اين اطلاعات رو بگيرم. آدرسش كجاست؟ جواب خاصيت Connection هستش كه بايد با Refrence قبلي يعني cnn مقداردهي بشه:
    در #C:

    cmd.Connection = cnn;

    در VB.NET:

    cmd.Connection = cnn

    حالا همه چيز آماده هستش تا اطلاعات جدول مورد نظر ما فراخواني بشه. هم دستور SQL رو داريم هم آدرس.

  7. #7

    Lightbulb منبع DataSet

    براي اينكه يه Refrence از DataSet داشته باشيم كد زير رو مي نويسيم:
    در #C:

    DataSet ds = newDataSet();

    در VB.NET:

    Dim ds AsNew DataSet()

    همون طور كه گفته شد sqlDataAdapter دستور و آدرس رو از sqlCommand گرفت و رفت سراغ DataBase. حالا بايد اطلاعات رو بگيره و بريزه درون انبار DataSet.
    براي اينكه DataSet ما پر بشه بايد اطلاعات درون sda يا sqlDataAdapter رو درون اين انبار Fill كنيم:
    در #C:

    cnn.Open();
    sda.Fill(ds ,
    "Barnamenevis");
    cnn.Close();

    در VB.NET:

    cnn.Open()
    sda.Fill(ds,
    "Barnamenevis")
    cnn.Close()

    cnn.Open: بانك اطلاعاتي رو باز مي كنه.
    Fiil: دستور Fill اطلاعات رو درون DataSet خالي مي كنه.
    sda.Fill (DataSet Refrence, "DataSet Name")
    DataSet Refrence: همون Refrence جديد(new) از نوع DataSet هستش.
    DataSet Name: براي DataSet برنامه يك اسم انتخاب مي كنيم.
    cnn.Close: بانك اطلاعاتي ما بسته ميشه.
    حالا انبار DataSet ما پر شد از اطلاعات Database و براي نمايش اطلاعات در برنامه بايد با DataSet كار كرد نه DataBase!

  8. #8

    Lightbulb شي sqlDataAdapter

    خوب حالا ما تونستيم يه دستور SQL كامل داشته باشيم. براي اينكه اطلاعات حمل بشه نياز به اون آدمك بزرگه داريم يعني sqlDataAdapter. بازهم يه Refrend از اين شي مي سازيم:
    در #C:

    SqlDataAdapter sda = newSqlDataAdapter();

    در VB.NET:

    Dim sda AsNew SqlDataAdapter()

    sqlDataAdapter يه سري فعاليتها داره كه مي تونه اونها رو انجام بده. من براي اينكه مي خوام اطلاعات رو فراخواني كنم از خاصيت SelectCommand اون استفاده مي كنم. از ديگر خاصيت هاي sqlDataAdapter ميشه به DeleteCommand ،insertCommand و UpdateCommand اشاره كرد.
    حالا اون آدمك بزرگه يعني sqlDataAdapter از sqlCommand مي پرسه كه دستور SQL مورد نظر + آدرس جدول پايگاه داده كجاست؟ براي اينكه كار رو ما انجام بديم بايد از خاصيت SelectCommand استفاده كنيم. من ميام اين خاصيت رو برابر cmd كه قبلاً تعريف كردم قرار مي دم:
    در #C:

    sda.SelectCommand = cmd;

    در VB.NET:

    sda.SelectCommand = cmd

    كار sqlDataAdapter تموم شد.

    سوال:
    شايد براي شما سوال بشه كه sda.SelectCommand از كجا مي فهمه كه دستور SQL و آدرس چيه؟ ما كه بهش مستقيم نگفتيم پس چي جوري اين اتفاق ميوفته؟
    جواب سادست. اگر دقت كنيد cmd يه خاصيت داشت به اسم CommandText يه خاصيت ديگه داشت به اسم Connection. جالبه بدونيد كه sda.SelectCommand هم اين خاصيت ها رو داره براي همين خودش تشخيص مي ده كه كدوم مقدار در كدو خاصيت بايد قرار بگيره. اگر به اين موضوع شك داريد دستورات زير رو اجرا كنيد و نتيجه كار رو ببينيد:
    در #C:

    MessageBox.Show(sda.SelectCommand .CommandText );
    MessageBox.Show(sda.SelectCommand .Connection .ToString ());

    در VB.NET:

    MsgBox(sda.SelectCommand.CommandText)
    MsgBox(sda.SelectCommand.Connection.ToString())

  9. #9

    Lightbulb تابع و متد LoadALL

    با روال و متد Connect آشنا شديم و براي صرفه جويي در كد ميايم LoadAll رو مي سازيم. اين پست در واقع در همه جاي برنامه كاربرد داره. يعني ميشه ازش به عنوان يه Refresh استفاده كرد:
    در #C:

    privateDataSet LoadAll()
    {
    Connect();
    cmd.CommandText = "select * from shelf";
    cmd.Connection = cnn;
    sda.SelectCommand = cmd;
    cnn.Open();
    sda.Fill(ds , "Barnamenevis");
    cnn.Close();
    return ds;
    }

    در VB.NET:

    PrivateFunction LoadAll() As DataSet
    Connect()
    cmd.CommandText = "select * from shelf"
    cmd.Connection = cnn
    sda.SelectCommand = cmd
    sda.SelectCommand.Connection = cnn
    cnn.Open()
    sda.Fill(ds, "Barnamenevis")
    cnn.Close()
    Return ds
    EndFunction

    حالا در هرجاي برنامه براي اينكه بخوام اطلاعات جدول پايگاه داده رو Refresh كنم () LoadAll رو صدا مي زنم:
    در #C:

    LoadAll();

    در VB.NET:

    LoadAll()

برچسب های این تاپیک

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

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