1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

نحوه اتصال ویژوال بیسیک و دات نت به SQL

شروع موضوع توسط minaaa ‏10/12/11 در انجمن SQL

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [​IMG]
     
    وضعیت سفید از این پست تشکر کرده است.
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : نحوه اتصال ویژوال بیسیک و دات نت به SQL

    کلمه SQL کوتاه شده عبارت Structured Query Language می باشد، که ترجمه آن زبان جستجوی ساخت یافته می باشد.
    SQL ابزار قدرتمندی است که ویژوال بیسیک و موتور Microsoft Jet از آن برای دسترسی به انواع پایگاه های داده استفاده می کنند.
    SQL در دهه ۱۹۷۰ توسط IBM به منظور استاندارد کردن روش های استخراج داده از پایگاه های داده مختلف، توسعه داده شد. هدف از اختراع این زبان، ارایه وسیله ای مستقل از برنامه نویسی بود.
    نام جَد اس کیو ال زبانی به نام سیکوئل(Sequel) می باشد که آن هم توسط IBM اختراع گردید. البته این زبان امروزه وجود ندارد چرا که با آمدن SQL جد این زبان به تاریخ پیوست.

    لازم می دونم در اینجا دو مورد رو برای شما تفکیک کنم که اکثر برنامه نویسای مبتدی باهاش مشکل دارن.
    یکی کلمه SQL هستش و دیگری SQL Server
    SQL مجموعه دستوراتی است که به شما اجازه می دهد به دیتابیس های مختلف وصل شید و روی اون ها اعمالی مثل ثبت، حذف و تغییر رو انجام بدین
    SQL Server نام یک دیتابیسه(مثل Access) که دستورات SQL در ابتدا برای این پایگاه داده نوشته شده بود ولی الان شما می تونین از این دستورات برای اتصال به Access و Oracle هم استفاده کنین.

    دستورات SQL به دو بخش کلی تقسیم می شوند:
    DML یا زبان پردازش داده
    DDL یا زبان تعریف داده
    دستورات DML برای استخراج، مرتب سازی، خلاصه سازی و محاسبه روی جدول ها بکار می روند.
    دستورات DDL شما را قادر می سازند تا در یک پایگاه داده، جدول، اندیس و رابطه تعریف کنین.
    این تقسیم بندی صرفاً جنبه آموزشی داره و به صورت عملی هیچ کاربردی نداره
    ساختار دستورات SQL توسط مؤسسه استاندارد های ملی امریکا(ANSI) و در کمیته ANSI-SQL مشخص می شود.
     
    وضعیت سفید از این پست تشکر کرده است.
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : نحوه اتصال ویژوال بیسیک و دات نت به SQL

    مسلماً اگه ما بخوایم برنامه ای بنویسیم که با دیتابیس SQL Server کار کنه، باید خود SQL Server رو نصب کرده باشیم
    اگه برنامه بخواد Local کار کنه، باید SQL Server حتماً نصب باشه ولی اگه برنامه تحت شبکه بخواد اجرا بشه کافیه روی سرور نصب باشه و روی کلاینت ها نمی خواد نصب شه(البته کلاینت ها به MDAC احتیاج دارن که توی Setup شون باید دیده بشه!)
    در اینجا با آموزش نصب SQL Server 2005 آشنا می شید .
     
    وضعیت سفید از این پست تشکر کرده است.
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : نحوه اتصال ویژوال بیسیک و دات نت به SQL

    برای وصل شدن به بانک اطلاعاتی SQL Server، باید دو کار رو انجام بدیم. یکی تعریف یک کانکشن(Connection) برای وصل شدن به دیتابیس و تعریف یک دستور(Command) برای ارسال دستورات به بانک اطلاعاتی
    شاید اینجا این سوال پیش بیاد که چرا ما باید به بانک اطلاعاتی، دستور بفرستیم؟
    فرض کنین می خواین از بانک اطلاعاتیتون فقط اون رکورد هایی رو ببینین که توشون کلمه “سلام” وجود داره، اگه ما نتونیم این موضوع رو به بانک اطلاعاتی بگیم، مجبوریم بعد از دریافت همه رکورد ها از دیتابیس یه برنامه بنویسیم که تمام رکورد هایی که کلمه “سلام” رو ندارن، نشون نده. حالا اگه حجم اطلاعات توی دیتابیس خیلی زیاد باشه، برنامه ما از کار می افته چون داره روی رکورد ها دنبال کلمه “سلام” می گرده و کاربر رو مجبور می کنه بیکار بشینه تا کار برنامه ما تموم بشه. اما SQL این مشکل رو حل کرده و چیزی به نام دستور(Command) تعریف کرده که شما توسط اون می تونین دستورات لازم رو بهش ارسال کنین تا وقت دریافت اطلاعات از دیتابیس نیاز به محاسبه دوباره اون ها نباشه. سرعت پردازش SQL نسبت به برنامه هایی که ما برای پردازش می نویسیم انقدر بالا هستش که هیچ کسی بدون دستورات SQL برنامه ننویسه.(برنامه ای دارم می نویسم که روی ۱۰۵ میلیون دیتا پردازش های زیادی انجام می ده.انجام این کار با دستورات SQL توی ۷ دقیقه انجام می شه ولی با VB احتمالاً بیشتر از ۷ ساعت)
     
    وضعیت سفید از این پست تشکر کرده است.
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : نحوه اتصال ویژوال بیسیک و دات نت به SQL

    توی پست قبلی یاد گرفتیم که چه جوری از طریق VB6 به دیتابیس SQL وصل بشیم. توی این پست می خوایم همین کار رو از طریق VB.NET انجام بدیم.
    با توجه به اینکه توی پست قبل اصول کار رو توضیح دادم توی این پست فقط نحوه وصل شدن رو می گم
     
    وضعیت سفید از این پست تشکر کرده است.
  6. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : نحوه اتصال ویژوال بیسیک و دات نت به SQL

    توی جلسات گذشته تونستیم SQL Server رو نصب کنیم، و توی برنامه نویسی هامون ازش استفاده کنیم. حالا می خوایم با یه سری از دستورات آسونش آشنا بشیم.
    اولین دستوری که همه جا آموزش می دن، دستور SELCET هستش ولی من می خوام توی این آموزش سنت شکنی کنم و با دستوراتی کار رو شروع کنم که برنامه نویسان بهش احتیاج دارن.


    اولین دستوری که یاد می گیریم دستوری هست که یه دیتابیس SQL برامون می سازه:
    کد:
    کد:
    CREATE DATABASE database_name

    که باید به جای عبارت database_name، نام دیتابیسی که می خوایم بسازیم رو بنویسیم.
    این جا این سوال پیش میاد که اگه ما هنوز هیچ دیتابیسی نداریم، باید توی کانکشن استرینگمون به کدوم دیتابیس وصل بشیم و دستور Create Database رو بهش ارسال کنیم؟
    جواب اینه که وقتی SQL Server نصب می شه، دارای یه سری دیتابیس های آماده هستش که به همین منظور ساخته شدن. نام دیتابیسی که ما باید بهش وصل بشیم Master هستش. پس اگه بخوایم یه Database بسازیم باید به شکل زیر عمل کنیم:

    وی بی ۶:
    کد:
    کد:

    Dim cn As New ADODB.connection
    Dim rs As New ADODB.Recordset

    cn.Open “Server=(local);Database=Master;Trusted_Connection =True;
    “, cn, adOpenStatic, adLockOptimistic”
    rs.Open “CREATE DATABASE database_name”, cn, adOpenStatic, adLockOptimistic”
    وی بی دات نت:
    کد:
    کد:

    Dim Cn As SqlClient.SqlConnection
    Dim Comm As SqlClient.SqlCommand
    Dim SQL As String

    Cn.ConnectionString = “Server=(local);Database=Master;Trusted_Connection =True;”
    Cn.Open()
    Comm.Connection = Cn
    SQL = “CREATE DATABASE database_name”, cn, adOpenStatic, adLockOptimistic”
    Comm.CommandText = SQL
    Comm.ExecuteNonQuery()

    یه نکته مهم این جا وجود داره و اون هم اینه که ما اول باید چک کنیم، دیتابیسی که می خوایم بسازیم موجود نباشه و بعدش شروع به ساختش کنیم. حالا از کجا باید بفهمیم دیتابیسمون موجوده یا نه؟
    توی دیتابیس Master، یه Table وجود داره به نام Sys.databases (توی نسخه SQL 2000، اسمش sysdatabases) که نام همه دیتابیس هایی که روی سرور موجوده، توی این Table ذخیره می شه.(توی فیلدی به نام Name)
    اینو آماتورها نخونن: برای فهمیدن اینکه دیتابیسمون موجوده اول به Master وصل می شیم بعد با دستور SELECT به sys.databases وصل می شیم و آخر همون دستور SELECT با قرار دادن یه WHERE متوجه می شیم که دیتابیسمون موجوده یا نه که در حقیقت این جوری می شه:
    کد:
    کد:
    SELECT Name FROM sys.databases WHERE Name = ‘database_name’
    تو این جلسه یاد گرفتیم چطوری یه دیتابیس بسازیم. توی جلسه آینده با ساختن Table آشنا می شیم
     
    وضعیت سفید از این پست تشکر کرده است.
  7. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : نحوه اتصال ویژوال بیسیک و دات نت به SQL

    جلسه قبلی، یادگرفتیم چگونه برای دیتابیسمون جدول بسازیم و فهمیدیم در زمان ساخت جدول باید فیلد های جدول و نوع هرکدوم رو مشخص کنیم. توی این جلسه و چند جلسه آینده می خوایم با نوع فیلد ها یا همون Data Type ها بیشتر آشنا بشیم:

    به طور کلی ۷ نوع دیتا تایپ وجود داره که تقسیم بندیشون به این شکله:
    کد:

    ۱٫Exact numerics
    2.Unicode character strings
    3.Approximate numerics
    4.Binary strings
    5.Date and time
    6.Other data types
    7.Character strings
    توی این جلسه و جلسه بعد فقط با نوع اول و زیرگروه های اون یعنی Exact numerics آشنا می شیم.

    این نوع از دیتا تایپ ها، همون طور که از اسمش هم مشخصه برای عدد هایی با طول مشخص به کار می ره.
    مثلاً ما می خوایم یه فیلد درست کنیم که قراره توش شماره ملی افراد درج بشه، با توجه به اینکه می دونیم شماره ملی یه کد ۱۰ رقمی هستش و همیشه طولش همین قدره، پس نوع فیلدمون رو از گروه Exact numerics انتخاب می کنیم.

    زیر گروه های Exact numerics عبارت اند از:
    کد:

    bigint
    numeric
    bit
    smallint
    decimal
    smallmoney
    int
    tinyint
    money

    می ریم سراغ bigint، int، smallint و tinyint.
    فضایی که bigint از دیتابیسمون می گیره، ۸ بایت هستش؛ فضایی که int از دیتابیسمون می گیره، ۴ بایت هستش؛ فضایی که smallint از دیتابیسمون می گیره، ۲ بایت هستش و نهایتاً فضایی که tinyint از دیتابیسمون می گیره، ۱ بایت هستش.
    bigint از -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ تا ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ رو توی خودش جا می ده؛ int از -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷ رو توی خودش جا می ده؛ smallint از -۳۲,۷۶۸ ۳۲,۷۶۷ رو توی خودش جا می ده و نهایتاً tinyint از ۰ تا ۲۵۵ رو توی خودش جا می ده.
    یادم رفت بگم که int از کلمه integer اومده و به معنی عدد صحیح هستش. پس با این توصیف فهمیدیم که توی دیتا تایپ های بالا عدد ۱۲٫۶ رو نمی تونیم ذخیره کنیم؛ یا ۱۲ یا ۱۳٫

    می ریم سراغ decimal و numeric.
    توی decimal و numeric می تونیم از اعداد اعشاری استفاده کنیم. به این شرط که طول عددمون از ۳۸ رقم بیشتر نشه. هر عدد اعشاری رو می تونیم با دو مؤلفه تعریف کنیم. یکی تعداد ارقام صحیح، یکی تعداد ارقام اعشاری. تعداد ارقام صحیح یا همون precision، می تونه از ۱ تا ۳۸ باشه. تعداد ارقام اعشاری یا همون scale هم می تونه از ۰ تا precision باشه. پس اگه precision رو با p و scal رو با s نشون بدیم، یه همچین چیزی داریم: ۰ <= p >= s.
    توی جلسه بعدی با bit و money آشنا می شیم.
     
    وضعیت سفید از این پست تشکر کرده است.