ٹائپ ڈیٹا بیس میں ایک تبلیڈاپٹیر کی بنیادی صنف تبدیل کریں

صفحہ تخلیق تاریخ :

ٹائپ شدہ ڈیٹا بیس بنانے اور تخلیق کرنے کے لیے کوڈ

ایک ٹائپ ڈیٹا بیس آپ کو ایک داٹیٹابلی تخلیق کرنے کی اجازت دیتا ہے جو SQL پر مبنی ہر کالم کے لئے معلومات کی قسم ہے ، یا ایک تبلیڈاپٹیر جو ایک ٹائپ کردہ داٹیٹابلی کی بنیاد پر ڈی بی کے ساتھ ڈیٹا کی بات چیت کو آسان بناتا ہے.

چونکہ مقصد یہاں ایک ٹائپ ڈیٹا بیس تخلیق کرنے کے لئے نہیں ہے ، تو چلو فوری طور پر ڈیٹا بیس اور ٹیبل تیار کے ساتھ ایک ڈیٹا بیس بنائیں. آپ یہ بھی کر سکتے ہیں جو آپ میز کو لے جانے کے لئے چاہتے ہیں.

پہلا قدم آپ کے منصوبے میں ایک نئی شے کے طور پر ایک ڈیٹا بیس شامل کرنا ہے. نام کچھ ہے لیکن یہ یہاں چھوڑ دیا جاتا ہے.

ڈیٹا بیس کھولیں اور ڈیزائنر سے ایک تبلیڈاپٹیر شامل کریں.

داٹیٹابلی اور ایک تبلیڈاپٹیر بنانے کے لیے مددگار پر عمل کریں ۔

مجھے لگتا ہے کہ مندرجہ ذیل فارم کو باز گیر کرنے اور داٹیٹابلی اور تبلیڈاپٹیر کا استعمال کرتے ہوئے ڈیٹا بیس سے ریکارڈ استعمال کرنے کا ایک مثال ہو سکتا ہے ۔ (یہ صرف ایک مثال ہے.)

public Form1()
{
  InitializeComponent();

  using (var adapter = new 金額集計TestTableAdapter())
  {
    var table = adapter.GetData();

    foreach (var row in table)
    {
      Trace.WriteLine(string.Format("{0}:{1}", row.年月, row.金額));
    }
  }
}

عام طور پر ، اس ڈیٹا بیس کا استعمال کرتے ہیں کہ ایک پروجیکٹ ایک سے زیادہ ٹیبل سے کم ہے ، اور آپ بہت سے داتصیٹس تخلیق کرتے ہیں جو میزیں یا ایک سے زیادہ میزیں کی تعداد کو یکجا کرتے ہیں. مجھے لگتا ہے کہ یہ عمل کرنے کے لئے پروسیسنگ کی ایک عام خلاصہ ہے جب ایسا ہوتا ہے. مثال کے طور پر ، آپ شاید اندرونی طور پر استعمال ہونے والی SQL کو تبدیل کرنے کے لئے حالات کو تبدیل کرنے کے لئے کیا جا سکتا ہے.

البتہ, ڈیٹا بیس سے پیدا تبلیڈاپٹیر کلاس اصل میں خود بخود کوڈ کی طرف سے پیدا کیا جاتا ہے. اس کے علاوہ ، کیونکہ اس تبلیڈاپٹیر کلاس کو اجزاء کی کلاس وراثت ہے ، یہ حقیقی عام طور پر استعمال کیا جا سکتا ہے کہ کوئی طریقہ یا خصوصیات نہیں ہیں. آپ ایک تبلیڈاپٹیر سے متعلق عملیہ کو کال کرنے کے لیے ایک بنیادی صنف پاس نہیں کر سکتے ۔

اس کے علاوہ ، sql اندرونی طور پر استعمال کیا جاتا ہے ، سقلڈاٹاداپٹیر ڈیٹا بیس تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے ، وغیرہ کو محفوظ میں اعلان کیا جاتا ہے ، لہذا آپ انہیں باہر سے چھو نہیں سکتے.

تاہم ، جیسا کہ آپ نے طریقوں اور خصوصیات کی حفاظت میں اعلان کیا ہے ، آپ ان کو ایک کلاس بنانے کی طرف سے ان کو چھو سکتے ہیں جو تبلیڈاپٹیر کلاس کو وراثت ہیں ، اور اس تبلیڈاپٹیر کلاس میں ایک جزوی موڈیفائر ہے ، لہذا آپ اس عمل کو بڑھانے کے لئے کسی دوسرے طریقہ یا جائیداد کا اعلان کرسکتے ہیں. آپ داخلی جائداد حاصل کرنے کے لئے بھی ایک نئی پراپرٹی بنا سکتے ہیں ، جیسا کہ مندرجہ ذیل کوڈ میں:

using System.Data.SqlClient;
namespace DataSetBaseAdapter {
    public partial class DataSet1 {
    }
}

namespace DataSetBaseAdapter.DataSet1TableAdapters
{
  public partial class 金額集計TestTableAdapter
  {
    public SqlDataAdapter InnerAdapter
    {
      get { return Adapter; }
    }
  }
}

آپ اس تبلیڈاپٹیر کو اصل میں یہ دیکھنے کے لئے استعمال کرسکتے ہیں کہ آپ کو توسیع کی خصوصیات تک رسائی حاصل ہے.

تاہم ، اندرونی خصوصیات تک رسائی کا مطلب یہ نہیں ہے کہ عمل عام ہے ، اور آپ کو اب بھی ہر ڈیٹا بیس کے لئے کوڈ لکھنے کی ضرورت ہے.

تبلیڈاپٹیر کی بنیادی کلاس تبدیل کریں

جیسا کہ پہلے ذکر کیا گیا ہے ، تبلیڈاپٹیر کلاس کو اجزاء کی کلاس وراثت ہے ، پروسیسنگ کا اشتراک کرنا مشکل بناتا ہے. اگر آپ کسی کلاس کو وراثت کوڈ کا حصہ تبدیل کرتے ہیں تو ، کوڈ آٹو پیدا ہوتا ہے ، لہذا ڈیٹا بیس کو اپ ڈیٹ کرنے کے بعد کوڈ کو واپس کردیں. اگر آپ کر سکتے ہیں تو ، آپ ایک جزوی کلاس لکھ سکتے ہیں جو ایک علیحدہ فائل میں وراثت انٹرفیس ہے ، لیکن یہ بہت زیادہ احساس نہیں ہے کیونکہ آپ کو بہت سے تبلیڈاپٹرس لکھنا پڑتا ہے جیسا کہ آپ نے پیدا کیا ہے.

حقیقت میں, اس تبلیڈاپٹیر کی موروثی کلاس کو تبدیل کرنے کے لئے ایک طریقہ کار ہے. میں اس طریقہ کار کی وضاحت کرنا چاہوں گا.

سب سے پہلے, آپ کے وارث کرنا چاہتے ہیں کہ کلاس بنائیں. تبلیڈاپٹیر اصل میں اجزاء کی کلاس وراثت ، لہذا آپ کو اجزاء کی کلاس کے وارث ہونا چاہئے یہاں تک کہ اگر آپ اسے تخلیق کرتے ہیں. میں اس کوڈ کو لکھ دونگا جو میں یہاں اشتراک کرنا چاہتا ہوں ، لیکن میں صرف ایک کلاس لکھیں. آپ کی بنائی ہوئی جگہ کا نام مشابہ کریں ۔

using System.ComponentModel;

namespace DataSetBaseAdapter
{
  public class BaseAdapter : Component
  {
  }
}

پھر ڈیٹا بیس ڈیزائنر کھولیں اور آپ کی تخلیق کردہ تبلیڈاپٹیر کو منتخب کریں.

جائیداد کھولنے کے لئے دائیں کلک کریں. باسیکلاسس نامی ایک جائیداد ہے ، جو ابتدائی طور پر "نظام. کومپونینٹمودال. اجزاء" ہونا چاہئے. اس کلاس کو لکھنا جو آپ نے ابھی پیدا کیا ہے. میں ہر چیز کو لکھ دونگا ، بشمول نام کی جگہ.

اگر آپ اسے محفوظ کرتے ہیں ، تو آپ دیکھیں گے کہ تبلیڈاپٹیر کی بیس کلاس بدل گئی ہے ۔ ہر تبلیڈاپٹیر کو یہ ترتیب دے کر ، آپ بیس کلاس کے لئے عام پروسیسنگ لکھ سکتے ہیں ۔

مثال کے طور پر ، اگر آپ اندرونی SQL یا سقلڈاٹاداپٹیر تک رسائی حاصل کرنا چاہتے ہیں ، تو لکھیں: یڈیپٹر اور کومماندکوللیکٹاو جو خود کار طریقے سے بنائے جاتے ہیں صرف وارث کلاس کی طرف سے پیدا کی خصوصیات ہیں ، لہذا وہ براہ راست وارث سے چھوا نہیں جا سکتے ہیں. مندرجہ ذیل کوڈ تک رسائی کو مجبور کرنے کے لئے عکاسی کا استعمال کرتا ہے.

using System.ComponentModel;
using System.Data.SqlClient;
using System.Reflection;

namespace DataSetBaseAdapter
{
  public class BaseAdapter : Component
  {
    public SqlDataAdapter InnerAdapter
    {
      get
      {
        return (SqlDataAdapter)GetType().GetProperty("Adapter",
          BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this, null);
      }
    }

    public SqlCommand[] InnerCommandCollection
    {
      get
      {
        return (SqlCommand[])GetType().GetProperty("CommandCollection",
          BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this, null);
      }
    }
  }
}

آپ دیکھ سکتے ہیں کہ آپ اصل میں ورثہ کلاس کی خصوصیات تک رسائی حاصل کرنے کے لئے تبلیڈاپٹیر کا استعمال کرسکتے ہیں.