PDA

View Full Version : نحوه استفاده از Data Reader



روح اله معینی زاده
دوشنبه 24 اسفند 1383, 11:10 صبح
با سلام خدمت تمامی دوستان :oops:

من تا به حال از ابزارهای ویژوال مربوط به اتصال به بانک استفاده می کردم. اگه می شه نحوه استفاده از کدنویسی رو برای اتصال و انتخاب داده از بانک به من یاد بدید، متشکر می شم.

1- نحوه ایجاد یک کانکشن و استفاده از آن
2- نحوه ایجاد و استفاده از DataAdapter
3- نحوه ایجاد و استفاده از DataSet
4- نحوه ایجاد و استفاده از DataReader

البته این توضیحات به شکل خلاصه باشه و با ذکر نمونه

در نهایت بگم که نیاز فوری من برای مورد آخر است. اگه بشه کامل‌تر توضیح داده بشه.

ببخشید که پر رویی کردم.

با احترام- خدانگهدار

AspNet
دوشنبه 24 اسفند 1383, 23:10 عصر
ایجاد یک کانکشن با برنامه نویسی:

Friend WithEvents SqlDbConnection1 As New System.Data.SqlClient.SqlConnection()

این کد آبجکت کانکشن جدیدی را با مقادیر پیش فرض، ایجاد میکند.
که برای استفاده از آن هم نام آبجکت را همراه با خاصیت آن می نویسی. مثال:
تنظیم خاصیت connectionString:


Me.SqlConnection1.ConnectionString="<<add your Connection String here>>"

AspNet
دوشنبه 24 اسفند 1383, 23:11 عصر
ایجاد DataAdapter با برنامه نویسی:
از آنجایی که DataAdapter به چهار آبجکت Command ارجاع می نماید، باید هر یک از آبجکت های Commandرا تعریف و نمونه سازی نموده و سپس DataAdapter را به آنها ارجاع نمایید:


Friend WithEvents cmdSelectSuppliers As New System.Data.SqlClient.SqlCommand()
Friend WithEvents cmdInsertSuppliers As New System.Data.SqlClient.SqlCommand()
Friend WithEvents cmdUpdateSuppliers As New System.Data.SqlClient.SqlCommand()
Friend WithEvents cmdDeleteSuppliers As New System.Data.SqlClient.SqlCommand()
Friend WithEvents daSuppliers As New System.Data.SqlClient.SqlDataAdapter()


این خطوط چهار آبجکت commandو یک آبجکت DataAdapterرا تعریف می نمایند و سپس هر یک از آبجکت ها را با استفاده از سازنده ی پیش فرض مقدار دهی می نمایند.
حالا باید خطوط زیر رو به بعد از فراخوانی InitializeComponent اضافه کنین:



Me.daSuppliers.DeleteCommand=Me.cmdDeleteSuppliers
Me.daSuppliers.InsertCommand=Me.cmdInsertSuppliers
Me.daSuppliers.SelectCommand=Me.cmdSelectSuppliers
Me.daSuppliers.UpdateCommand=Me.cmdUpdateSuppliers

این کدها چهار آبجکت command را به یک آبجکت DataAdapterبه نام daSuppliers تخصیص می دهند.
حالا اگه بخوای این کامندها را مقدار دهی کنی باید به این صورت عمل کنی:


Me.cmdSelectSuppliers.CommandText="Select * From Suppliers"
Me.cmdSelectSuppliers.Connection=Me.SqlConnection1


و به همین صورت برای بقیه....
:)

AspNet
سه شنبه 25 اسفند 1383, 00:08 صبح
ایجاد Untyped DataSet با برنامه نویسی:

Dim dsEmployees As New System.Data.DataSet("dsEmployees")

AspNet
سه شنبه 25 اسفند 1383, 00:09 صبح
ایجاد یک دیتاریدر برای برگرداندن نتایج Command:

فرض کنید جدولی داریم به نام EmployeeList که میخواهیم آنرا پر کنیم:
ابتدا متغیرهای مورد نظر را تعریف میکنیم:


Dim rdrEmployees As System.Data.SqlClient.SqlDataReader
ِِDim dr As System.Data.DataRow

سپس Connection را باز میکنیم:


Me.cnNorthwind.Open()

و بعد DataReader را با متد ExecuteReader ایجاد میکنیم:


rdrEmployees=Me.cmdEmployees.ExecuteReader()

و در ادامه:

With rdrEmployees
While .Read
dr=Me.dsMaster1.EmployeeList.NewRow
dr(0)=.GetInt32(0)
dr(1)=.GetString(1)
dr(2)=.GetString(2)
Me.dsMaster1.EmployeeList.Rows.Add(dr)
End While
End With
rdrEmployees.Close()
Me.cnNorthwind.Close()


حلقه While .Readابتدا یک DataRow جدید ایجاد میکند، هر ستون را از DataRowمیگیرد و مقدار آن را به یک ستون می دهد و بعد، ردیف جدید را به جدول EmployeeList اضافه میکند. و سرانجام DataReader و Connection
بسته می شوند.

AspNet
سه شنبه 25 اسفند 1383, 00:12 صبح
هر قسمتی مشکل داشتید بگید تا جایی که میتونم کمکتون میکنم :sunglass:

روح اله معینی زاده
سه شنبه 25 اسفند 1383, 12:53 عصر
با سلام خدمت دوست گرامی

از توضیحات کامل شما کمال تشکر را دارم.

1-1- منظور از Untyped DataSet چیست؟
1-2- در دستور Dim dsEmployees As New System.Data.DataSet("dsEmployees") منظور از .DataSet("dsEmployees") که به کار برده‌اید چیست؟ آیا dsEmployees از قبل وجود دارد یا اینکه هم اکنون داریم آن را می سازیم؟

از جواب‌هایی که خواهید داد متشکرم. انشاء الله بتوانم در تاریخ 14/01/1384 جواب‌هایی را که داده‌اید بخوانم :strange:

با احترام- خدانگهدار

AspNet
سه شنبه 25 اسفند 1383, 20:32 عصر
باشه پس منم سر موقع میام جوابتو میدم :mrgreen: