تبلیغات
پرتال فناوری اطلاعات ایران - مطالب مقالاتی در مورد ASP.NET & ADO.NET
 
پرتال فناوری اطلاعات ایران
SKype:reza.arefan www.facebook.com/reza.arefan
درباره وبلاگ



مدیر وبلاگ : رضا عارفان
موضوعات
مطالب اخیر
پیوندهای روزانه
آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

ASP.NET یک چارچوب کاربردی Web است که توسط شرکت مایکروسافت عرضه گردیده تا برنامه نویسان بتوانند برای ساخت سایت‌های Web و برنامه‌های Web پویا وسرویس‌های Web پویا وسرویس‌های Web XML از آن استفاده کنند. این بخشی از زیر ساخت .NET مایکروسافت و جانشینی برای تکنولوژی صفحات سرویس دهنده فعال (ASP) است. ASP مبتنی بر زبانهای مشترک در حال اجرا است که به برنامه نویسان اجازه می‌دهد کدهای ASP را با استفاده از هر زبان Framework.NET بنویسند.
مجموعه پیش رو مشتمل بر ۲۴ ویدوئوی آموزشی برنامه نویسی ASP.NET می باشد . فیلم های آموزشی ASP.NET به زبان فارسی و فاقد صدا می باشد که با فشرده سازی چشمگیر از ۱٫۱ گیگابایت به ۱۷ مگابایت کاهش یافته است . این مجموعه به کوشش پیمان عزیز در انجمن برنامه نویس تهیه شده است . عناوین فیلم های آموزشی این مجموعه به قرار زیر است :

  • خواندن محتویات یک فایل متنی و ذخیره آن در آرایه
  • اجازه ندادن به IP های مشخص شده برای دسترسی به سایت بدن پایگاه داده
  • خواندن و نوشتن اطلاعات در کوکی ها
  • کپی کردن فایل
  • ساختن DataBase و اضافه کردن اطلاعات توسط Linq To Sql
  • حذف و بروز کردن یک رکورد از دیتابیس توسط Linq To Sql
  • ساخت دکمه ی Dynamic
  • نحوه ی استفاده از FCKeditor و اضافه کردن اطلاعات به دیتابیس و نمایش اطلاعات در GridView
  • نحوه ی غیر فعال کردن نوشتن در کادر File Upload
  • نحوه ی کدگذاری کردن یک رشته و خارج کردن آن از حالت کد گذاری شده
  • وارد کردن رکورد با عکس در دیتابیس توسط Linq To Sql و نمایش آن در GridView
  • قرار دادن مقدار یک فیلد در یک متغیر
  • ساخت صفحه ی Login با امنیت بالا
  • ساخت یک MemberShip
  • ساخت پروفایل برای کاربران و اعضا
  • انتقال اطلاعات بین صفحات توسط Query String
  • مثال کاربردی برای کار با Query String
  • تولید عکس تصادفی و Random در برنامه
  • تولید عدد تصادفی در برنامه
  • نحوه ی نوشتن متن بر روی عکس
  • نحوه ی تبدیل متن به عکس
  • Ajax Update Panel
  • مثال کاربردی برای Update Progress
دانلود  دانلود مستقیم : فیلم های آموزشی ASP.NET به زبان فارسی


tag  حجم فایل : 17 مگابایت 




نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 18 مهر 1390
رضا عارفان

مقدمه و معرفی (درس اول)

سطح مقاله : مقدماتی 

سرویس دهنده ی وب چیست (درس دوم)

سطح مقاله : مقدماتی 

دایركتوریهای مجازی (درس سوم)

سطح مقاله : مقدماتی 

اسكریپت نویسی (درس چهارم)

سطح مقاله : مقدماتی 

اسکریپتهای سمت سرویس گیرنده (درس پنجم)

سطح مقاله : مقدماتی 

اسکریپتهای سمت سرویس دهنده (درس ششم)

سطح مقاله : مقدماتی 

اشیاء ASP (درس هفتم)

سطح مقاله : مقدماتی 

معرفی شئ Request در ASP (درس هشتم)

سطح مقاله : مقدماتی 

مجموعه QueryString (درس نهم)

سطح مقاله : مقدماتی 





نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
سه شنبه 15 آذر 1384
رضا عارفان

فرم ورودی شامل کنترلهای زیر است:

BtnCancel TxtUserName TxtPassword BtnSubmit

زیربرنامه ای بنام check تعریف می کنیم:

Public Sub check()
Dim strConn As String = "server=localhost;uid=;pwd=;database=mydb;"

پس از گرفتن Connection به تعریف SqlCommand و DataReader می پردازیم:

Dim MyConn As New System.Data.SqlClient.SqlConnection(strConn)
Dim objDR As System.Data.SqlClient.SqlDataReader

حال متغیری از نوع رشته ای را برای انتخاب فیلدهای جدولمان تعریف می کنیم:

Dim MySQL As String = "Select username, password from login Where username = '" & TxtUserName.Text & "' and password = '" & TxtPassword.Text & "'"
Dim Cmd As New System.Data.SqlClient.SqlCommand(MySQL, MyConn)
MyConn.Open()
objDR = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

سپس DataReader بر اساس cmd تعریف شده Excute می شود حال باید بررسی کنیم که همچنین کاربری در جدول login وجود دارد یا نه؟ اگر کاربری با مشخصات ارسالی وجود نداشته باشد پیغامی به کاربر مبنی بر نادرست بودن اطلاعات ورودی داده می شود:

If Not objDR.Read() Then
    Response.Write("<script>alert('Username or password is invalid!');location.href='loginadmin.aspx'</script>")
    Response.End()
    TxtUserName.Text = ""
    TxtPassword..Text = ""
    objDR.Close()
    MyConn.Close()
Else
    Session("password") = objDR("password")
    Response.Redirect ("IndexAdmin.aspx")

در غیر این صورت به صفحه مربوطه انتقال داده می شود و در آخر objdr و MyConn را close می کنیم. لازم به ذکر است که در صفحه ارجاعی در قسمت Page_Load دستور زیر که نشان دهنده کلمه عبور صحیح است نوشته شود:

If Session("password") = "" Then
    Response.Write("<script>alert('You must be Login!');location.href='loginadmin.aspx'</script>")
    Response.End()
    Response.Redirect("loginadmin.aspx")
End If




نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 27 تیر 1384
رضا عارفان

یکی از اعمال مورد نیاز در کار با داده های یک بانک اطلاعاتی جستجو، مرتب سازی و فیلتر کردن داده ها بر حسب نیازمندیهای برنامه کاربردی می باشد.

در ADO.NET برای انجام این اعمال روی داده ها در یک DataTable دو روش وجود دارد: یکی استفاده از متد Select از شی DataTable و دیگری استفاده از شئ DataView.

شئ DataView دارای توانایی بیشتری نسبت به متد Select از شئ DataTable می باشد و کار با آن نیز ساده تر است.در این مقاله سعی شده به اختصار درباره خصوصیتها، متدها و کار با شئ DataView اطلاعاتی ارائه شود.

شئ DataView مانند یک منبع برای اتصال کنترلهای دیگر به آن مورد استفاده قرار می گیرد. شئ DataView نمایی از یک شئ DataTable می باشد که برای جستجو، فیلتر و مرتب سازی و حتی دستکاری داده های آن شئ DataTable مورد استفاده قرار می گیرد.

هر شئ DataView شامل یک مجموعه DataRowView می باشد که مشابه شئ DataRow در DataTable هستند. این اشیا دارای ویژگیهایی می باشند که در زیر به اختصار توضیح داده شده اند:

• DataView: شئ DataView که سطر جاری به آن تعلق دارد را برمی گرداند.
• Item: مقدار یک ستون از سطر فعلی را برمی گرداند.
• Row: شئ DataRow که در حال حاضر در حال بررسی است را برمی گرداند.

اشیا DataView در داخل یک شئ دیگر به نام DataViewManager قرار می گیرند. رابطه بین این دو شئ مانند رابطه بین DataTable و DataSet می باشد، با این تفاوت که امکان دارد یک شئ DataTable دارای چند شئ DataView باشد که برای انجام جستجو و فیلتر کردن مختلف روی داده های آن استفاده می شوند. در حقیقت در زمان اتصال یک کنترل به یک شئ DataSet در پروسه Data-Binding آن کنترل به شئ DataView مربوط به آن DataSet متصل می شود که با خصوصیت DefaultViewManager شئ DataSet مشخص می شود.

برای ساخت یک شئ DataView از متد New استفاده می شود در مثال زیر یک شئ DataView می سازیم:

Dim myDataView as New DataView
myDataView.Table = myDataSet.myTable
myDataGrid.DataSource = myDataView
myDataGrid.DataBind ()

در مثال بالا ابتدا یک شئ DataView جدید به نام myDataView ایجاد شده است. سپس خصوصیت Table آن برابر با MyDataTable از myDataSet که در برنامه کاربردی ما موجود است قرار داده شده است. شئ DataView دارای خصوصیتهایی می باشد که در زیر به اختصار توضیح داده شده اند:

AllowDelete و AllowEdit و AllowNew: با تنظیم این مقادیر Boolean می توان با دستکاری و اضافه و حذف مقادیر در DataView مقادیر متناظر آنها را در شئ DataTable مربوط تغییر داد.

• Count: تعداد اشیا RowView موجود در DataView جاری را بر می گرداند (مشابه خصوصیت • Count از شئ DataTable).
• Item: شئ DataRowView که توسط اندیس به وسیله پارامتر به آن ارسال شده است را بر می گرداند.
• RowFilter: عبارتی که برای فیلتر کردن سطرهای درون DataView استفاده می شود.
• Sort: عبارتی که برای مرتب کردن سطرهای درون DataView به کار می رود.
• Table: شئ DataTable متناظر با DataView را مشخص می کند.

برای استفاده از خصوصیات RowFilter و Sort عبارتهایی هستند که مشابه عبارتهای محاسباتی برای متد Select از شئ DataTable مورد استفاده قرار می گیرند. برای تنظیم مقادیر خصوصیت Sort که مربوط به روش مرتب سازی سطرهای DataRow است لازم است مقادیر ستونهای مورد نظر جهت مرتب سازی را به ترتیب در داخل علامت " " قرار دهیم. برای مثال برای مرتب سازی یک DataView به ترتیب بر حسب ستونهای Date و Author به روش زیر عمل می کنیم:

myDataView.Sort = "Date , Author"

با قرار دادن عبارتهای ASC و DESC بعد از نام ستونها با یک فاصله می توان سطرها را به ترتیب صعودی یا نزولی مرتب کرد (حالت پیش فرض صعودی ASC است) برای مثال:

myDataView.Sort = "Date DESC , Author ASC"

برای تنظیم مقدار RowFilter می توان از عبارات DataColumn استفاده کرد. این عبارات شامل یک سری توابع، عملگرها، عبارات و نام ستونها می باشند که جهت انجام فیلتر کردن مورد استفاده قرار می گیرند در این عبارتها می توان از تمام عملیات دستکاری روی رشته ها و متغیرهای رشته ای استفاده کرد. به علاوه برای استفاده از مقادیر تاریخ باید آنها را در بین علامات # # قرار داد.

برای استفاده از یک ستون خاص در این عبارات تنها کافیست از نام آن ستون استفاده کنید. برای استفاده از سطرهای فرزند از عبارت Child قبل از آنها و برای استفاده از سطر مادر نیز از عبارت Parent قبل از آنها استفاده کنید.

بعضی از توابع قابل استفاده در این عبارات عبارتند از Sum و Avg و Min و Max و Count و بعضی از عملگرهای منطقی مورد استفاده عبارتند از And و Or و Not و < و > و <= و >= و <> و In و Like.

عملگر In مشخص می کند که آیا مقدار مورد نظر در محدودیه تعیین شده است یا نه. مقادیر مربوط به حدود باید توسط علامات ' ' از هم جدا شوند برای مثال:

Command="Author In('K' , 'M' , 'N')"

برخی عملگرهای محاسباتی مانند + و و * و / و % نیز در عبارات DataColumn قابل استفاده هستند. تعدادی تابع نیز در این عبارات مورد استفاده قرار می گیرند که برخی از آنها عبارتند از Convert و Len و ISNull و...

در پایان سه متد مهم شئ DataView به اختصار مورد بررسی قرار گرفته اند.

• AddNew: اضافه کردن یک سطر جدید به DataView
• Delete: پاک کردن یک سطر از DataView
• Find: سطرهایی که شامل پارامتر ارسالی به این متد هستند پیدا می کند





نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 27 تیر 1384
رضا عارفان
در این مقاله روش ذخیره كردن Connection String در فایل Web.Config مورد بررسی قرار می‌گیرد. 

مقدمه
بسیاری اوقات برنامه‌های كاربردی نیاز دارند كه چیزهای خاصی مانند Connection String (رشته اتصال) یا پارامترهای عمومی برنامه، به طور خارجی برای برنامه ذخیره شوند. راه قدیمی برای این كار استفاده از فایلهای INI یا وارد كردن آنها در Registry بود. البته هر كدام از این روشها مشكلات خاص خود را دارند. ASP.NET راه مناسبی را برای انجام آن فراهم كرده است. شما می‌توانید این قبیل مقادیر را قسمت فایل Web.Config ذخیره كنید. كد زیر بیانگر این مطلب می‌باشد.


ذخیره كردن مقادیر در Web.Config
كد زیر را به فایل Web.Config خود اضافه كنید:



            value="Integrated Security=SSPI;
        Initial Catalog=Northwind;
        Data Source=MyServerNetSDK" />

فضانامهای مورد نیاز
فضانامهای زیر كلاسهای مورد نیاز برای این كار را فراهم می‌كنند:

System.Collections.Specialized
System.Configuration

كد VB.NET برای بازیابی مقادیر
كد زیر چگونگی بازیابی مقادیر را با استفاده از VB.NET نشان می‌دهد:

Dim myvar As String
Dim nv As NameValueCollection
nv = ConfigurationSettings.AppSettings()
myvar = nv("connectionstring")

البته شما می‌توانید این كار را با سرعت بیشتری انجام دهید:

Dim myvar As String
myvar=ConfigurationSettings.AppSettings("connectionstring
")

كد #C برای بازیابی مقادیر
كد زیر چگونگی بازیابی مقادیر را با استفاده از #C نشان می‌دهد:

string myvar;
NameValueCollection nv;
nv=ConfigurationSettings.AppSettings;
myvar=nv["connectionstring"];

از طریق كد زیر، می‌توانید این كار را با سرعت بیشتری انجام دهید:

string myvar;
myvar=ConfigurationSettings.AppSettings["connectionstring"];

امیدوارم كه مقاله برایتان مفید باشد





نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 27 تیر 1384
رضا عارفان

نمایش تمام رکوردهای جدول SQL در DataGrid (پر کردن DatasGrid):

برای برقراری ارتباط با بانک اطلاعاتی ابتدا یک Connection String همانند مثال زیر تعریف کنید:

Dim connect As New System.Data.OleDb.OleDbConnection("Provider=SQLOLEDB.1;Password=yourpassword;User ID=youruserid;Initial Catalog=yourdatabase;Data Source=yourserver;")

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

connect.Open()

برای واکشی همه فیلدها از جدول مورد نظر متغیری به نام Sqlstr از نوع string تعریف می کنیم:

Dim SQLstr As String = "SELECT * FROM Tablename "

برای برقرار نمودن ارتباط میان بانک اطلاعاتی وکنترل مورد نظرمان (در اینجا DataGrid) در اینجا می توان از DataAdaptor و DataSet استفاده کرد. DataAdaptor بر اساس دستورمتغیر sqlstr و نام Connectionمان تعریف می شود:

Dim myDataAdapter As New System.Data.OleDb.OleDbDataAdapter(strSQL, connect)
Dim myDataSet As New DataSet()
myDataAdapter.Fill (myDataSet, "Tablename")

حال زمان تعریف و ارتباط DataGrid با جدولمان است:

DataGrid1.DataSource = myDataSet.Tables("Tablename")
DataGrid1.DataBind()

در انتها باید Connection را ببندیم:

connect.Close()




نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 27 تیر 1384
رضا عارفان

استفاده از Typed DataSet سبب می شود تا ضمن نوشتن برنامه ای جامع تر و کارآمدتر، قابلیت خواندن آن را افزایش داده و نسبت به اجرای آن اطمینان داشته باشیم. 

در این مقاله برآنیم تا شما را با یکی از قویترین و کارآمدترین روشهای کار با DataSetها آشنا کنیم. بعبارت دیگر می خواهیم شما را با نوع جدیدی از DataSet یعنی Typed DataSet آشنا کنیم و نحوه ایجاد، بکارگیری و فواید آن را با هم ببینیم. بنابراین لازم است که شما قبلا با DataSet و کاربردهای آن آشنا بوده و یا با آن کار کرده باشید. استفاده از Typed DataSet سبب می شود تا برنامه های شما جامع تر و بهتر شده و نیز از طرف دیگر برنامه شما اصطلاحاً type safety می شود.

در این مقاله شما احتمالا به ابزارهای زیر نیاز دارید:

• Visual Studio.NET 
• Windows 2000
• Visual C#
• SQL Server 2000

فراموش نکنید که فرض این مقاله بر این است که شما با ADO.NET DataSet و مفاهیم مربوط به آن کاملاً آشنا هستید.

Typed DataSet برعکس DataSet، مجموعه ای از کلاس های استاندارد NET Framework. نیست بلکه عبارت است از مجموعه کلاس هایی که به کمک ابزارهایی در NET Framework. توسط برنامه نویس تولید می شود و علاوه بر خواص و قابلیتهای موجود در DataSet، دارای متدها، رویداد(event)ها و صفات اضافه و مختص به خود می باشد.

واضح است که Typed DataSet برای اینکه تمامی خواص و ویژگیهای DataSet را داشته باشد لازم است که از DataSet مشتق یا به ارث گرفته شده باشد و همینگونه نیز می باشد. بنابراین Typed DataSet کلاسی است که از DataSet به ارث گرفته شده است و دارای صفات و متدهای اضافه تری جهت برآورده کردن اهداف مورد نظر می باشد.

یکی از این اهداف دسترسی آسان و مطمئن به جداول (table) و فیلدهای داده ای با استفاده از نام آنها می باشد. در DataSet معمولی شما مجبور هستید که از متدهای اصطلاحاً collection-based و اندیس های تودرتو برای دستیابی به جداول و محتویات آنها استفاده کنید. همانگونه که می دانید اکثر این اندیس ها متنی می باشند و اشتباهات تایپی شما تنها در زمان اجرا نمایان خواهند شد و این مساله می تواند برای شما آزار دهنده بوده و یا باعث ایجاد خطاهای منطقی شود که رفع آنها ممکن است ساعتها وقت شما را بخود اختصاص دهد.

علاوه بر قابلیت خواندن بالایی که Typed DataSet به کد برنامه شما می دهد، استفاده از Typed DataSet سبب می شود تا بتوانید از امکان Intellisense محیط ویرایشگر Visual Studio .NET بهره برده و کد برنامه شما راحتتر و سریعتر تایپ شود. همچنین Typed DataSet این امکان را برای شما فراهم می سازد تا کامپایلر مورد استفاده تان نوع فیلدها را در زمان کامپایل تشخیص داده و در صورت نسبت دادن مقادیر با تایپ های مختلف به یکدیگر، خطای لازم را اعلام نماید. دقت داشته باشید که اینکار در زمان کامپایل صورت می گیرد و نه در زمان اجرا و این چیزی نیست جز دسترسی type-safe به DataSet و در نتیجه افزایش قابلیت اطمینان برنامه شما! به همین دلیل است که به این نوع DataSet اصطلاحاً Typed DataSet می گوئیم.


تفاوت DataSet و Typed DataSet

تفاوتهای زیادی از لحاظ شکل نوشتن برنامه گرفته تا کارآیی بین این دو وجود دارد. در این قسمت این تفاوتها را از لحاظ type-safety و شکل ظاهری با ذکر دو مثال بررسی می کنیم.

در کد برنامه زیر از DataSet معمولی استفاده شده است:

String connectionString = "server=localhost;Trusted_Connection=yes;database=Northwind";

SqlConnection conn = new SqlConnection(connectionString);

SqlDataAdapter EmployeesDA = new SqlDataAdapter("SELECT * FROM EMPLOYEES;", conn);


DataSet ds = new DataSet();


EmployeesDA.Fill(ds, "Employees");

//Name of the table is misspelled to Employes
//instead Employees, which is wrong
// در اینجا نام جدول عمدا اشتباه تایپ شده است
Console.WriteLine(ds.Tables["Employes"].Rows[0]["FirstName"]);

//LastName contains one space at the end, which is wrong
// در اینجا عمدا یک فضای خالی بعد از Lastname آورده شده است
Console.WriteLine(ds.Tables["Employees "].Rows[0]["LastName "]);


//this is wrong because ReportsTo must be an employeeID,
//an integer value
// در اینجا اشتباها یک مقدار رشته حرفی به یک متغیر عددی نسبت داده شده است
ds.Tables["Employees"].Rows[0]["ReportsTo"] = "Paul";

می بینید که در کد برنامه بالا مجبور هستیم که از نام جدول و فیلدها بعنوان اندیس استفاده کنیم که احتمال اشتباه تایپی در آن بسیار زیاد است و ما به عمد این اشتباهات را انجام داده ایم. همچنین به عمد یک رشته حرفی را به متغیری از نوع عددی منسوب نموده ایم. هیچیک از این اشتباهات در زمان کامپایل برنامه تشخیص داده نخواهد شد در عوض این اشتباهات در زمان اجرای برنامه خود را بصورت خطای زمان اجرا نشان خواهند داد که بهیچ عنوان مطلوب و پذیرفته نیست.

در کد برنامه زیر از Typed DataSet استفاده شده است:

String connectionString = "server=localhost;Trusted_Connection=yes;database=Northwind";

SqlConnection conn = new SqlConnection(connectionString);

SqlDataAdapter EmployeesDA = new SqlDataAdapter("SELECT * FROM EMPLOYEES", conn);


//Creating an Instance of Typed DataSet "EmployeesTDS"
EmployeesTDS ds = new EmployeesTDS();


EmployeesDA.Fill(ds, "Employees");

Console.WriteLine(ds.Employees[0].FirstName);
Console.WriteLine(ds.Employees[0].LastName);


//this is wrong because ReportsTo must be an employeeID,
//an integer value
ds.Employee[0].ReportsTo = "Paul";

در این حالت ما از نام جداول و فیلدها بصورت اسامی یک سری صفت تعریف شده و مشخص استفاده کرده ایم و نه بصورت یک عبارت حرفی که می تواند حاوی هر چیزی باشد. بعبارت دیگر در این حالت ما اصولاً مجاز به استفاده از نام یا نامهای دیگری نیستیم و تنها از نامهای تعیین شده برای یک سری صفت یا متد باید استفاده کنیم. خطاهای موجود در کد برنامه فوق در زمان کامپایل برنامه اعلام می شود و این مزیت بسیار قابل توجهی نسبت به DataSet معمولی می باشد.

مقایسه کد برنامه های فوق نشان می دهد که استفاده از Typed DataSet چقدر آسان و راحت بوده و به چه میزان قابلیت خواندن برنامه ما را بالا برده و سبب می شود تا به آسانی برنامه خود را مدیریت و نگهداری کنیم





نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 27 تیر 1384
رضا عارفان

در این بخش شما به دانسته های بخش اول نیاز دارید. شئ بعدی که مورد بحث قرار می گیرد کلاس Data Adapter است. OleDBDataAdapter اطلاعات را می گیرد و یک ارتباط منطقی بین داده ها و کلاس Dataset ایجاد میکند. بطور کلی میتوان گفت Data Adapter در نظر اول معادل Data Command می باشد. روش استفاده از Data Adapter ها بطور معمول بصورت زیر تعریف می شود:

Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)

ملاحظه می کنید که شئ Adapter از دو پارامتر- یکی رشته دستورات SQL و دیگری رشته ارتباطی - برای فرستادن دستورات به پایگاه داده استفاده می کند. بطور معمول DataAdapter برای پرکردن DataSetها و بروز کردن پایگاه بوسیله یک DataSet و اجرا کردن دستورات بکار می رود. اکنون نمای کلی از کاربرد فوق را در زیر می بینید:

Dim ds As DataSet = New DataSet()
objAdapter.Fill(ds,"Users")

متد Fill جهت اجرای دستور تنظیم شده در Data Adapter بکار می رود. بعبارت دیگر اطلاعات واکشی شده از پایگاه داده در یک جدول با نامی که ما تعیین می کنیم (Users) ذخیره می شود.
نکته ضروری اینست که تکنیک Mappings در اکثر مواقع کارساز است. Mappings عبارت است از ساختن یک نام مستعار (Alias) برای نام جداول در یک Dataset. این aliasها هیچگونه تاثیری در منبع داده ندارد و وقتی که بوسیله DataAdapter فرستاده می شود بصورت خودکار بنام پیش فرض تبدیل میشود. این تکنیک باعث خوانایی کد و راهنمایی برنامه نویس در ارجاع های بعدی وتشخیص جداول فراخوانی شده میشود.

objAdapter.TableMappings.Add("adbtable","Users")
with objAdapter.tableMapping(0).ColumnMappings
    .Add("PID","ID")
    .Add("LAstName","Lname")
    .Add("StreetAddress","Addy")
End with
objAdapter.Fill(ds)

در تکنیک فوق بجای استفاده از عبارت ds.Tables("adbtable") میتوانیم Ds.Tables("Users") را بکار ببریم. در بخشهای آینده دیگر فواید استفاده از Mappings آمده است. همچنین کلاس CommandBuilder برای بهنگام کردن یک بانک که بوسیله Dataset صورت گرفته یک شیوه صحیح بشمار میرود:

Dim cmdBLD As New OleDBCommandBuilder(objAdapter)

که در عبارت فوق شئ objAdapter بعنوان پارامتر به دستور CommandBuilder فرستاده شده و سپس بوسیله متد Update منبع داده بهنگام می شود:

objAdapter.Update(ds,"Users")

در ادامه، مثال زیر بعنوان جمع بندی مطالب قبلی آمده است. توجه داشته باشید در مثال زیر نتیجه ای بعنوان خروجی در مرورگر نمایش داده نمی شود و فقط از منبع داده ای اطلاعات خوانده شده و یک شئ Dataset پر می شود:

<%@ Import NameSpace="System.data" %>
<%@ Import NameSpace="System.Data.OleDB" %>

<Script Language="VB" Runat="Server">

Sub Page_Load( Sender As Object, E As EventArgs)
    Dim objConn As New OleDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=e:\db\users.mdb")

    objConn.Open()
    Dim ds As DataSet=New DataSet
    Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)
    Dim objcmdBLD As New OleDBCommandBuilder(objAdapter)
    Obj.Adapter.Fill(ds,"Users")
End Sub

</Script>




نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
دوشنبه 27 تیر 1384
رضا عارفان
 

در این مقاله شما در مورد کار با با پایگاه داده در ASP.NET آشنا خواهید شد. بدین معنا که در صدد هستیم تا رویه ای کلی از مفاهیم، روشها وابزارهای مورد استفاده در ASP.NET جهت برقراری ارتباط با پایگاه داده، نشان دادن داده ها، دستکاری داده ها، بهنگام سازی و... توسط اشیایی چون مهیا کننده های بانک های اطلاعاتی، DataSetها XML، و ... معرفی می شود.

اگر تا بحال با پایگاه داده کار نکرده اید شاید provider یک پایگاه داده برای شما نامفهوم باشـد. بطور خلاصه راهی را که باید طی کرد تا به پایگاه داده متصل شده، آنرا باز کرده و داده ها را دستکاری کرده و دستورات را اجرا نمود، بوسیله یک تهیه کننده اطلاعات مشخص می شود. در ASP.NET معمولا از دو روش برای این کار استفاده می شود. روش اول اینکه اگر پایگاه داده شما از نوع SQL Server باشد بایستی با مدل SQLClient کار کرد و اگر پایگاه داده شما غیر از SQL Server باشد (در حال حاضر) باید از روش دیگر یعنی مدل OleDb استفاده نمود. بعنوان مثال اگر پایگاه داده شما Oracle ،Sybase و یا Access باشد باید از روش OleDb استفاده کنید.

روش کار بدین صورت است که ابتدا بایستی فضانام زیر را در صفحاتی که از بانک اطلاعاتی استفاده می شود فراخوانی کرد:

<% @ Import NameSpace="System.Data" %>
<% @ Import NameSpace="System.Data.OleDb" %>

برای برقراری ارتباط با پایگاه معمولا از عبارت زیر استفاده می شود:

Dim ObjConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=e:\db\users.mdb")

که قسمت DataSource آدرس فایل پایگاه داده است که در اینجا یک بانک Access است. همانگونه که ملاحظه می کنید از رشته ارتباطی یا Connection String بعنوان پارامتر استفاده شده است و بوسیله متد Open ارتباط باز می شود:

objConn.Open()

لازم به توضیح است که در پایان کار بوسیله متد Close ارتباط را خاتمه می دهیم.

بمحض ارتباط با پایگاه داده می توان دستورات را به آن فرستاد. این کار معمولا بوسیله شی OleDbCommand انجام می شود. جهت انجام این کار می توان یک دستور SQL یا نام یک روال ذخیره شده (Stored Procedure) را مشخص نمود و بنا به مقتضیات می توان اعمال مختلفی را روی پایگاه پیاده نمود:

Dim objCommand As New OleDbCommand ( "Select * From users", objConn )

ملاحظه می کنید که کلاس Command از دو پارامتر رشته SQL و نام رشته ارتباطی برای فرستادن دستورات به پایگاه داده استفاده می کند. برای مثال آنچه را که در عبارت فوق دیدید می توان به بخشهای کوچکتر زیر تقسیم کرد.

ابتدا تعریف شی:

Dim objCommand As New OleDbCommand()

سپس نسبت دادن آن به رشته ارتباطی جهت برقراری ارتباط پایگاه:

objCommand.Connection= objConn

مشخص کردن عملیات مورد نظر بوسیله دستورات SQL:

objCommand.CommandText="Select * From Users"

حتی می توانید عملیات فوق را بصورت ذیل انجام دهید:

Dim objCommand As New OleDbCommand( SQL string, Connection string )

روشهای فوق دقیقا یک کار مشابه را انجام می دهند با این اوصاف که در عبارت آخر بجای شئ ارتباطی از یک رشته ارتباطی استفاده شده است. تا این مرحله هنوز عبارات فوق را به اجرا در نیاورده ایم. برای این کار راه های متفاوتی وجود دارد:

- از ExecuteNonQuery زمانی استفاده می شود که قصد برگرداندن داده ها از پایگاه مورد نظر نباشد مثلا در مواقعی که از دستورات SQL جهت درج (Insert) و بهنگام سازی (Update) استفاده شود.

objCommand.ExecuteNonQuery

- از ExecuteReader برای خواندن و برگرداندن اطلاعات از پایگاه استفاده می کنیم.

Dim ObjRead As OleDbDataReader
objRead=objCommand.ExecuteReader

- برای دستکاری یک تک مقدار مشخص و مورد نظر از متد ExecuteScalar استفاده می شود.

برای خواندن داده ها معمولا از کلاس DataReader استفاده می شود -برای خواندن نه برای اضافه کردن یا بروز کردن- این شئ بصورت مستقیم به پایگاه داده دسترسی دارد و فقط خواندنی (Read Only) است. البته این خاصیت محدودیتی برای آن است اما برای خواندن ساده داده روشی کامل بشمار می رود.

Dim objReadaer As OleDbDataReader
objReader=objCommand.ExecuteReader
Whlie objReader.Read
Response.write(objReader.GetString(0)& " <br> " ) 
End While

عبارت فوق جهت نمایش و چاپ داده ها بکار می رود. متد Read خواندن را تا زمانیکه به پایان نتایج نرسد ادامه می دهد و عبارت objReader.GetString(0) برای برگرداندن نسخه رشته ای ستونهای رکورد کاربرد دارد. در لیست زیر چند متد دیگر برای برگرداندن مقادیر داده ای متغیرها آمده است:

GetBoolean(x) مقدار منطقی را بر می گرداند.
GetChar(x) مقدار کاراکتری را برمی گرداند.
Get DataTypeColumn(x) نوع داده را در ستون برمیگرداند.
GetString(x) مقداررشته ای را برمی گرداند.
و...





نوع مطلب : مقالاتی در مورد ASP.NET & ADO.NET ، 
برچسب ها :
لینک های مرتبط :

       نظرات
یکشنبه 26 تیر 1384
رضا عارفان