برنامه نویسی سیستم های شی گرا

Slides:



Advertisements
Similar presentations
17. Data Access ADO.Net Architecture New Features of ADO.NET
Advertisements

ADO.Net Modelo para acesso a dados nas aplicação.Net Componentes: DataSet.Net Data providers: Connection Command DataReader DataAdapter.
ADO.NET: Working in Disconnected Environment Sergey Baidachni MCT, MCSD, MCDBA.
Introduction to Database Processing with ADO.NET.
1 ADO.NET. 2.NET Framework Data Namespaces System.Data –Base set of classes and interfaces for ADO.NET System.Data.Common –Classes shared by the.NET Data.
Overview of ADO.NET Chapter 1 ADO.NET 4.0 Development.
C# programming with database Basic guideline. First step Install SQL Server 2008/2010 (Professional edition if possible) Install Visual Studio 2008/2010.
ADO.NET – part II August 2004 [ Marmagna Desai]. CONTENTS ADO vs ADO.NET ADO.NET – Managed providers Connecting to Database SqlConnection Selecting Database.
Chapter 11 Introduction to Database Processing. Class 11: Database Processing Use a Visual Studio Wizard to establish a database connection used to load.
Programming with Visual Basic.NET An Object-Oriented Approach  Chapter 8 Introduction to Database Processing.
ODBC, OLE DB, and ADO Introduction Dr. Ron Eaglin.
ADO.NET A2 Teacher Up skilling LECTURE 3. What’s to come today? ADO.NET What is ADO.NET? ADO.NET Objects SqlConnection SqlCommand SqlDataReader DataSet.
1 ASP.NET ASP.NET Rina Zviel-Girshin Lecture 4. 2 Overview Data Binding Data Providers Data Connection Data Manipulations.
A Simple Introduction. What is ADO.net? First the word ADO stands for ActiveX Data Objects And it is an integral part of.Net Framework of Microsoft hence.
Needs for Accessing Database To make your web site more dynamic and maintainable, you can display information on your web pages that are retrieved from.
Databases and Data Access  Introduction to ADO.NET  ADO.NET objects  ADP.NET namespaces  Differences between ADO and ADO.NET.
.NET Data Access and Manipulation ADO.NET. Overview What is ADO.NET? Disconnected vs. connected data access models ADO.NET Architecture ADO.NET Core Objects.
1 Introduction to ADO.NET Microsoft ADO.NET 2.0 Step by Step Rebecca M Riordan Microsoft Press, 2006.
Chapter 3 Introduction to ADO.NET 3.1 The ADO and ADO.NET ActiveX Data Object (ADO) is developed based on Object Linking and Embedding (OLE) and Component.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Working with Disconnected Data The DataSet and SqlDataAdapter ADO.NET - Lesson.
ASP.NET Rina Zviel-Girshin Lecture 5
Module 9: Accessing Relational Data Using Microsoft Visual Studio.NET.
Session 8: ADO.NET. Overview Overview of ADO.NET What is ADO.NET? Using Namespaces The ADO.NET Object Model What is a DataSet? Accessing Data with ADO.NET.
Module 7: Accessing Data by Using ADO.NET
1 UCN Technology: Computer Science: Autumn 2012 ADO.NET 2.0 Architecture DataReader DataSet Connection factory Config file.
1.Net programmingADO.NETNOEA / PQC ADO.NET Architecture Connection factory Config file DataReader DataSet DataGrid Autogeneration of SQL.
Presented by Joseph J. Sarna Jr. JJS Systems, LLC
An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.
ADO.NET connections1 Connecting to SQL Server and Oracle.
Why ADO.NET Not your father’s Data Access.
Mauricio Featherman, Ph.D. Washington St. University
Company Confidential 1 Working with Data and ADO.Net.
ADO.NET AND STORED PROCEDURES - Swetha Kulkarni. RDBMS ADO.NET Provider  SqlClient  OracleClient  OleDb  ODBC  SqlServerCE System.Data.SqlClient.
Distributed Database Systems INF413. ADO.NET is a set of classes that comes with the Microsoft.NET framework to facilitate data access from managed languages.
Accessing Data with Microsoft Visual C# Applications.
HNDIT Rapid Application Development
Databases – Unit 3 & 4.  SQL is not restricted to a specific database, however in class we will be looking at the two major database programmes in use.
ADO.NET FUNDAMENTALS BEGINNING ASP.NET 3.5 IN C#.
Active Data Objects Using.Net ADO.Net Farooq Ahmed Amna Umber Summayya Shehzad.
DataGridView. Displaying data in a tabular format is a task you are likely to perform frequently. The DataGridView control is designed to be a complete.
Module 2: Using ADO.NET to Access Data. Overview ADO.NET Architecture Creating an Application That Uses ADO.NET to Access Data Changing Database Records.
Querying Information in a Database. CONTENTS Relational Database Systems Creating Database with SQL Server Reading Data with LINQ Requirements to Get.
제 21 장 : ADO.NET 을 이용한 데이터 접근. ADO.NET - DataSet 사용하기.
Data Access. ADO.NET ADO.NET is the primary library for building database solutions within the.NET Framework. ADO.NET does not replace ADO. ADO and OLEDB.
.NET Data Access and Manipulation
C# 1 CSC 298 ADO.NET. C# 2 ADO.NET  A data access technology that maps very well to the world of the web (disconnected architecture)  data is retrieved.
Common SQL keywords. Building and using CASE Tools Data Base with Microsoft SQL-Server and C#
Data Access with ADO.NET
Introduction to ADO.NET
Introduction to Database Processing with ADO.NET
ADO.NET Fundamentals.
Introduction to Database Processing with ADO.NET
ADO.NET and Stored Procedures
ADO.NET Framework.
.NET Data Access and Manipulation
Distributed Database Systems
How to Create Login Form using vb.net and SqlServer Database
Lecture 6 VB.Net SQL Server.
Active Data Objects Binding ASP.NET Controls to Data
DataSet и SqlDataAdapter
VB.NET Using Database.
ADO.Net and Stored Procedures
מתחברים למסד נתונים היכרות עם ADO.Net.
Bài 5: ADO.NET 5.1. Khái niệm 5.2. Các lớp và không gian tên cơ bản của ADO.NET 5.3. Thao tác với dữ liệu kết nối – Connected 5.4. Thao tác với dữ liệu.
Browser (Client Side) 瀏覽器 (客戶端)
E-commerce Applications Development
PROG Advanced Web Apps 4/13/2019 Programming Data Pages Wendi Jollymore, ACES.
Active Data Objects Binding ASP.NET Controls to Data
Introduction to Database Programming through ADO. NET
ADO.NET Fundamentals.
Presentation transcript:

برنامه نویسی سیستم های شی گرا تقی زاده بهار 92

برنامه نویسی سه لایه

برنامه نویسی سه لایه(2) لایه presentation: بالاترین لایه سیستم را در بر می گیرد وتمام فرم ها در این قسمت هستند و سطحی است که کاربر با آن کار می کند لایه businesslogic: کلاس های بین dataaccess و فرم ها قرار دارد و کار ارتباطی بین این دو را انجام می دهد لایه dataaccess: رابط بین پایگاه داده و برنامه است

تعریف کلاس dataaccess برای لایه DataAccess این کلاس دارای سه خاصیت و چهار متد می‌باشد. خاصیت‌ها : private SqlConnection sconnection; Private SqlCommand scommand; private SqlDataAdapter da;  

تعریف کلاس dataaccess برای لایه DataAccess متدها: 1- تابع سازنده: public dataaccess() { sconnection = new SqlConnection(); da = new SqlDataAdapter(); scommand = new SqlCommand(); scommand.Connection = sconnection ; da.SelectCommand = scommand; }  

تعریف کلاس dataaccess برای لایه DataAccess متدها: 1- متد باز کردن اتصال: public void connect() { string cs = @"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\New folder (2)\test\test\WindowsApplication1\Database1.mdf;Integrated Security=True;User Instance=True"; sconnection.ConnectionString = cs; sconnection.Open(); }  

تعریف کلاس dataaccess برای لایه DataAccess 2- متد بستن اتصال: public void disconnect() { sconnection.Close(); }  

تعریف کلاس dataaccess برای لایه DataAccess 2- متد اجرای تراکنش خواندنی: public DataTable select(string s) { scommand.CommandText = s; DataTable dt = new DataTable(); da.Fill(dt); return dt; }  

تعریف کَلاس dataaccess برای لایه DataAccess 2- متد اجرای تراکنش اجرایی: public void docommand(string s) { scommand.CommandText = s; scommand.ExecuteNonQuery(); }   

تعریف کلاس stdclass برای لایه bussinesslogic در این مرحله باید برای هر جدول ،کلاس متناظر آن را ایجاد کنیم.تا این کلاس فقط روی داده‌های همان جدول کار کند. مثلا برای جدول studentکلاس stdclass را تعریف می‌کنیم.  

تعریف کلاس stdclass برای لایه bussinesslogic خاصیت ها: به ازای هر فیلد مورد نیاز یک خاصیت‌ تعریف میکنیم. public string name; public string family; public string major; public int stdcode; public int midterm; public int final;  

تعریف کلاس stdclass برای لایه bussinesslogic برای اتصال به لایه dataaccess یک شی از کلاس dataaccess ایجاد میکنیم. Dataaccess _mydal = new dataaccess();  

تعریف کلاس stdclass برای لایه bussinesslogic متدها : public DataTable selectall() { string sql = "select * from student"; _mydal.connect(); DataTable dt = _mydal.select(sql); _mydal.disconnect(); return dt; }  

تعریف کلاس stdclass برای لایه bussinesslogic متدها : public void upd() { string sql = "update student set name='{0}' where stdCode = {1}"; sql = string.Format(sql, this.name, this.stdcode); _mydal.connect(); _mydal.docommand(sql); _mydal.disconnect(); }  

تعریف کلاس stdclass برای لایه bussinesslogic متدها : public void addfromform() { string sql="insert into student (stdcode,name) values({0},'{1}')"; sql = string.Format(sql, this.stdcode, this.name); _mydal.connect(); _mydal.docommand(sql); _mydal .disconnect(); }  

تعریف کلاس stdclassبرای لایه bussinesslogic متدها : public void deleteRecord() { string sql = "delete from student where stdCode = {0};"; sql = string.Format(sql, this.stdcode); _mydal.connect(); _mydal.docommand(sql); _mydal.disconnect(); }  

نمونه کد در لایه peresentation private void button1_Click(object sender, EventArgs e) { stdClass _s1= new stdClass(); dt = _s1.selectall(); dataGridView1.DataSource = dt; }    

1- آشنایی با فضای نام System.Data کلاسهای اصلی ADO.net در فضای نام System.Data قرار دارد. این فضای نام خود نیز شامل چند فضای نام دیگر است که مهمترین آنها عبارتند از: System.Data.SqlClient System.Data.OleDb System.Data.Odbc System.Data.OracleClient

1- آشنایی با فضای نام System.Data کلاسهای اصلی ADO.net در فضای نام System.Data قرار دارد. این فضای نام خود نیز شامل چند فضای نام دیگر است که مهمترین آنها عبارتند از: System.Data.SqlClient System.Data.OleDb System.Data.Odbc System.Data.OracleClient

فضای نام System.Data.SqlClient شامل کلاس هایی است که برای دسترسی به بانک های اطلاعاتی ایجاد شده به وسیله ی SQL Server به کار می رود. برای استفاده از این کلاس باید با استفاده از using آنرا به برنامه ضمیمه کرد. using System.Data.SqlClient

مسیر حرکت داده ها به سمت فرم TableAdapter DataSet DataBase Controls Binding Connection SelectCommand UpdateCommand DeleteCommand InsertCommand DataTable DataBase DataTable DataRow Data Source Data Member DataRow

برای استفاده از کلاس های پایه ADO برای استفاده از کلاس های پایه ADO.NET مانند DataSet و DataTable باید فضای نام System.Data را نیز به برنامه اضافه کنیم. System.Data

DataTable dt = new DataTable(); ما می‌توانیم با استفاده از این کلاس، داده‌های موجود در جدولی از بانک خود را به حافظه (Ram) منتقل کنیم تا بتوانیم روی داده‌های آن کار کنیم. در این کلاس داده ها در قالب سطر و ستون نگهداری می شوند. نحوه تعریف شیءای به نام dt از نوع این کلاس: DataTable dt = new DataTable();

DataSet ds = new DataSet (); دیتاست مجموعه‌ای از جداول است، که در حافظه قرار دارند. در واقع یک دیتاست شامل یک یا چند DataTable است. یک دیتاست همانند یک مخزن در حافظه عمل می کند و اطلاعات جدول(جداول ها) را در خود نگه می دارد. نحوه تعریف شیءای به نام ds از نوع این کلاس: DataSet ds = new DataSet ();

4- کلاس SqlConnection: این کلاس در فضای نام System.Data.SqlClient قرار دارد برای ایجاد ارتباط بین برنامه و پایگاه داده مورد استفاده قرار می گیرد. پس از ایجاد شی ای از این کلاس میتوانیم با استفاده از خاصیت ConnectionString که یک خاصیت رشته ای است، مسیر بانک اطلاعاتی مورد نظر را به آن اختصاص دهیم.

con = new SqlConnection(); S=“مسیر بانک اطلاعاتی”; برای ایجاد شیء ای از این کلاس و اختصاص مسیر مورد نظر از کدی مشابه قطعه کد زیر استفاده می کنیم.(البته روشهای مختلقی برای این کار وجود دارد.) SqlConnection con; con = new SqlConnection(); S=“مسیر بانک اطلاعاتی”; con.ConnectionString=s;

کلاس SqlConnection دو متد برای شروع و اتمام ارتباط برنامه با بانک اطلاعاتی دارد. برای باز کردن ارتباط. con.Open() برای بستن ارتباط con.Close();

5- کلاس SqlCommand این کلاس نیز در فضای نام System.Data.SqlClient قرار دارد این کلاس حاوی یک دستور SQL برای اجرا روی داده های بانک اطلاعاتی است. این دستور میتواند یک دستورSELECT،یک دستورINSERT و یا دیگر دستورات SQL باشد. حتی می‌تواند نام یک پروسیجر ذخیره شده در بانک اطلاعاتی باشد. برای ایجاد شیءای از نوع این کلاس از دستورات زیر استفاده می کنیم SqlCommand com; com = new SqlCommand();

خاصیت Connection com.Connection=con; خاصیت CommandText برای استفاده از شیء ای از نوع SqlCommand باید خاصیت Connection آن را تنظیم کنیم. مقدار این خاصیت را برابر مقدار شیءای که از نوع کلاس SqlConnection برای ارتباط با بانک مورد نظر ایجاد کردیم قرار میدهیم. com.Connection=con; خاصیت CommandText این خاصیت متنی را دریافت می کند که می تواند حاوی یک دستور SQL (و یا نام یک پروسیجور ذخیره شده) باشد که باید روی داده اجرا شود. به عنوان مثال قطعه کد زیر یک نمونه از دستور SQL که در این خاصیت قرارداده شده است را نمایش می دهد. این قطعه کد برای درج یک رکورد با مقادیر مورد نظر مورد استفاده قرار می گیرد. Com.CommandText= "insert into std(stdcode,stdname) values(123,'ALi')"

متد ExecuteNonQuery (برای اجرای دستورات درج، حذف و ویرایش): بعد از انجام مراحل فوق برای اجرا دستور با استفاده از فراخوانی متد ExecuteNonQuery دستور موجود در شی SqlCommand را اجرا کنید. همانطور که از نام این متد مشخص است زمانی کاربرد دارد که بخواهیم دستوری را روی بانک اجرا کرده و داده را بر نگرداند. همانند دستور درج. ولی در صورتی که بخواهیم داده(داده هایی) را از بانک برگردانیم همانند زمان استفاده از دستور SELECT نمیتوانیم برای اجرای آن از این متد استفاده کنیم.

using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace WindowsApplication1 { class mydataaccesslayer private SqlConnection con; private SqlCommand com; con = new SqlConnection(); com = new SqlCommand(); strDirectory = "پوشه ی حاوی فایل بانک"; con.ConnectionString= @"DataSource=.\SQLEXPRESS;AttachDbFilename="+strDirectory+@\DBName.mdf;Integrated Security=True;User Instance=True"; com.Connection = con; com.CommandText= "insert into std(stdcode,stdname) values(123,'ALi'); con.Open(); com.ExecuteNonQuery(); con.Close(); }

da = new SqlDataAdapter(); این کلاس در فضای نام System.Data قرار دارد. این کلاس همانند پلی بین جداول بانک اطلاعاتی و نیز داده های موجود در حافظه که به وسیله ی DataSet و یا DataTable نگهداری میشوند، عمل می کنند. این کلاس برای دسترسی به بانک اطلاعاتی از کلاس SqlConnection و SqlCommand استفاده می کند. برای ایجاد شیء ای از نوع این کلاس از دستور زیر استفاده می کنیم. SqlDataAdapter da; da = new SqlDataAdapter();

خاصیت SelectCommand این خاصیت در کلاس DataAdapter برای دریافت داده های مورد نیاز در برنامه از بانک اطلاعاتی و نیز قرار دادن آنها در DataSet و یا DataTable به کار می رود. قبل از اینکه بخواهید به وسیله ی DataAdapter اطلاعات را از بانک بگیرید باید خاصیت SelectCommand را تنظیم کنید. این خاصیت شیءای از نوع SqlCommand دریافت کرده که این شیء مشخص می کند داده ها چگونه باید از بانک اطلاعاتی انتخاب شده و نیز چه داده هایی باید انتخاب شوند.

متد Fill(برای اجرای دستور select) با استفاده از این متد در کلاسDataAdapter می توانید دستور SQL موجود در خاصیت SelectCommand را در بانک اطلاعاتی اجرا کرده، و سپس داده های برگشتی از اجرای این دستور ار درون یک DataSet در حافظه قرار دهید. البته قبل از استفاده از این متد، باید شیءای از نوع DataSet و یا DataTable ایجاد کنیم.   DataTable dt = new DataTable(); da.Fill(dt);

using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace WindowsApplication1 { class mydataaccesslayer private SqlConnection con; private SqlCommand com; SqlDataAdapter da; con = new SqlConnection(); com = new SqlCommand(); strDirectory = "پوشه ی حاوی فایل بانک"; con.ConnectionString= @"DataSource=.\SQLEXPRESS;AttachDbFilename="+strDirectory+@\Database.mdf;Integrated Security=True;User Instance=True"; con.Open(); com.Connection = con; com.CommandText= "select * from std "; da = new SqlDataAdapter(); da.SelectCommand = com; DataTable dt = new DataTable(); da.Fill(dt); con.Close(); }