BBàài 6:

C# and .NET Framework C# and .NET Framework Data Access and Viewing i 6: Data Access and Viewing

with .NET with .NET

11

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

ĐoĐoààn Quang Minh n Quang Minh minhdqtt@gmail.com minhdqtt@gmail.com ://www.VTPortal.net httphttp://www.VTPortal.net 30. December 2006 Last update: 30. December 2006 Last update:

MMụục lc lụụcc

ADO.NET Overview ADO.NET Overview Using Database Connections Using Database Connections Commands Commands Quick Data Access: The Data Reader Quick Data Access: The Data Reader DataSet Working with DataSet Working with Viewing .NET data Viewing .NET data Example Example

22

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

ADO.NET Overview ADO.NET Overview

ADO.NET làà ggìì ADO.NET l –– ADO

hư việện cn cáác cho ph ActiveX Data Objects: thư vi c cho phéép truy c p truy cậập p

Microsoft's 's ActiveX Data Objects: t ADO -- Microsoft vvàà xxửử lý CSDL. lý CSDL. ADO cóó mmộột st sốố hhạạn chn chếế: luôn luôn gi –– ADO c i CSDL... : luôn luôn giữữ kkếết nt nốối, chi, chỉỉ llààm vim việệc vc vớới CSDL... ADO.NET: lààm vim việệc vc vớới ci cáác đc đốối tưi tượợng dng dữữ liliệệu, hu, hỗỗ trtrợợ mmạạnh mnh mẽẽ SQL –– ADO.NET: l SQL ng thờời hi hỗỗ trtrợợ ccáác kc kếết nt nốối OLE DB. Server, đ đồồng th i OLE DB. Server, System.Data namespace System.Data namespace –– ĐĐểể truytruy ccậậpp vvàà xxửử lýlý CSDL, CSDL, ssửử ddụụngng ccáácc namespace namespace System.Data

System.Data, , System.Data.OleDb, , System.Data.SqlClient System.Data.SqlClient, ,

System.Data.Common, , System.Data.OleDb System.Data.Common System.Data.SqlTypes.. System.Data.SqlTypes

–– CCáácc llớớpp cơcơ bbảảnn trong DataSet, , DataTable DataTable, , DataRow DataRow, ,

DataColumn, , DataRelation DataColumn –– CCáácc llớớpp đđặặcc bibiệệtt: : SqlCommand System.Data: : DataSet trong System.Data , Constraint DataRelation, Constraint SqlCommand, , OleDbCommand OleDbCommand, , SqlCommandBuilder SqlCommandBuilder, ,

SqlConnection, , OleDbConnection OleDbConnection, ,

SqlDataReader, ,

OleDbDataAdapter, , SqlDataReader SqlParameter, , OleDbParameter OleDbParameter, , SqlTransaction SqlTransaction, ,

33

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

OleDbCommandBuilder, , SqlConnection OleDbCommandBuilder SqlDataAdapter, , OleDbDataAdapter SqlDataAdapter OleDbDataReader, , SqlParameter OleDbDataReader OleDbTransaction OleDbTransaction

Using Database Connections Using Database Connections

CSDL, chchúúngng tata phphảảii ccóó mmộộtt kkếếtt nnốốii đđếếnn

MuMuốốnn truytruy vvấấnn CSDL, CSDLCSDL –– SSửử ddụụngng llớớpp SqlConnection

OleDbConnection SqlConnection, , OleDbConnection

thông thưthườờngng baobao ggồồmm têntên server, server, têntên

–– SSửử ddụụngng kkếếtt nnốốii hihiệệuu ququảả

CungCung ccấấpp chuchuỗỗii kkếếtt nnốốii: : thông CSDL, têntên truytruy ccậậpp, , mmậậtt khkhẩẩuu.. CSDL, SSửử ddụụngng ccáácc phương phương ththứứcc Open() Close(). Open() vvàà Close().

không ddùùngng nnữữaa: : thông ngay kkếếtt nnốốii khikhi không

thông thưthườờngng, , chchúúngng tata CSDL. KhiKhi ccầầnn truytruy vvấấnn, , chchúúngng

xong, , đđóóngng ngay

ngay kkếếtt nnốốii llạạii.. catch trong khkhốốii trytry……catch

using: ssửử ddụụngng mmộộtt đđốốii tưtượợngng. Ra using, . Ra khkhỏỏii phphạạmm vi vi ccủủaa using,

Transactions –– Transactions

ĐĐóóngng ngay không duyduy trtrìì mmộộtt kkếếtt nnốốii ““ccứứngng”” đđếếnn CSDL. không tata mmởở kkếếtt nnốốii, , truytruy vvấấnn xong KhKhốốii llệệnhnh kkếếtt nnốốii nênnên đđặặtt trong TTừừ khkhóóaa using: đđốốii tưtượợngng ssẽẽ bbịị huhuỷỷ..

44

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Transactions llàà ggìì?.?. Transactions thông qua SSửử ddụụngng thông qua SqlTransaction OleDbTransaction.. SqlTransaction hohoặặcc OleDbTransaction

Commands Commands

LLàà đđốốii tưtượợngng ththựựcc thi –– MMộộtt đđốốii tưtượợngng command

thi câucâu llệệnhnh command thông thi mmộộtt câucâu llệệnhnh SQL

đđểể ththựựcc thi

thông thưthườờngng đưđượợcc ssửử ddụụngng SQL hohoặặcc mmộộtt ththủủ ttụụcc lưulưu..

–– CCáácc bưbướớcc ththựựcc hihiệệnn::

SQL hohoặặcc têntên ththủủ ttụụcc lưulưu

command vvớớii câucâu llệệnhnh truytruy vvấấnn vvàà

text hay ththủủ ttụụcc lưulưu..

theo yêuyêu ccầầuu ththựựcc hihiệệnn ccáácc llệệnhnh

KhaiKhai bbááoo vvàà mmởở mmộộtt connection. connection. KhaiKhai bbááoo mmộộtt chuchuỗỗii chchứứaa câucâu llệệnhnh SQL KhaiKhai bbááoo mmộộtt đđốốii tưtượợngng command ngunguồồnn kkếếtt nnốốii.. ChChỉỉ đđịịnhnh thuthuộộcc ttíínhnh câucâu truytruy vvấấnn: : ddạạngng text hay ThêmThêm ccáácc thamtham ssốố ccủủaa câucâu truytruy vvấấnn.. ThThựựcc hihiệệnn llệệnhnh truytruy vvấấnn: : tutuỳỳ theo nhau khkháácc nhau

55

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Commands Commands

ExecuteNonQuery()()

thi câucâu llệệnhnh, , không

command. CCáácc llệệnhnh truytruy vvấấnn vvớớii command. –– ExecuteNonQuery ThThựựcc thi ThưThườờngng ssửử ddụụngng trong ddụụ ccáácc llệệnhnh delete, insert, update

không trtrảả vvềề kkếếtt ququảả.. trong truytruy vvấấnn không không ccầầnn quan quan tâmtâm đđếếnn kkếếtt ququảả, , vvíí

–– ExecuteReader

ExecuteReader()()

delete, insert, update……

–– ExecuteScalar

ExecuteScalar()()

TrTrảả vvềề mmộộtt DataReader DataReader.. ThưThườờngng ssửử ddụụngng trong trong ccáácc truytruy vvấấnn hihiểểnn ththịị ddữữ liliệệuu..

trong ccáácc truytruy vvấấnn trtrảả vvềề mmộộtt gigiáá trtrịị ddữữ liliệệuu đơnđơn, , vvíí

–– ExecuteXmlReader

ExecuteXmlReader()()

TrTrảả vvềề mmộộtt đđốốii tưtượợngng duyduy nhnhấấtt.. ThưThườờngng ssửử ddụụngng trong ddụụ ccáácc llệệnhnh ttíínhnh ttổổngng, , ttíínhnh trung trung bbììnhnh, , ttíínhnh min/max min/max……

66

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

TrTrảả vvềề mmộộtt XmlReader XmlReader.. XML. ThưThườờngng đưđượợcc xxửử ddụụngng khikhi hihiểểnn ththịị ddữữ liliệệuu dưdướớii ddạạngng XML. SQL Server 2000. XML, vvíí ddụụ SQL Server 2000. CSDL hhỗỗ trtrợợ truytruy vvấấnn XML, NênNên ddùùngng nnếếuu CSDL

Commands Commands

ExecuteScalarExample public class ExecuteScalarExample public class {{

Main(string[] [] args args))

public static void Main(string public static void {{

""uiduid==QSUser;pwd ;" + "database=Northwind ;" + NetSDK;" + Northwind";";

= new SqlConnection(source SqlConnection(source);); conn = new

SqlCommand(select, , conn = new SqlCommand(select conn););

string source = "server=(local)\\\\NetSDK string source = "server=(local) QSUser;pwd==QSPassword QSPassword;" + "database= string select = "SELECT COUNT(*) FROM Customers"; string select = "SELECT COUNT(*) FROM Customers"; SqlConnection conn SqlConnection conn.Open();(); conn.Open SqlCommand cmdcmd = new SqlCommand object o = cmd.ExecuteScalar cmd.ExecuteScalar();(); object o = ( o ) ; Console.WriteLine ( o ) ; Console.WriteLine

}}

77

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

}}

Quick Data Access: The Data Reader Quick Data Access: The Data Reader

luôn mmởở, , chocho đđếếnn nhnhậậnn đưđượợcc llệệnhnh đđóóngng..

CSDL luôn

Data Reader Data Reader –– ChChỉỉ đưđượợcc ttạạoo rara bbởởii gigiáá trtrịị trtrảả vvềề ccủủaa câucâu llệệnhnh truytruy vvấấnn.. –– KKếếtt nnốốii ttớớii CSDL TTíínhnh chchấấtt –– MMộộtt data reader

data reader gigiốốngng nhưnhư mmộộtt record set

(forward only) record set chchỉỉ titiếếnn (forward only)

ADO. trong ADO. trong

–– TTốốcc đđộộ caocao::

ChChỉỉ ccóó ththểể đđọọcc, , vvàà điđi đđếếnn bbảảnn ghighi titiếếpp.. quay llạạii ccáácc bbảảnn ghighi đãđã đđọọcc.. Không ththểể quay Không

data reader không không gigiữữ ccáácc bbảảnn ghighi trong trong bbộộ nhnhớớ..

CSDL vvàà chuy

trong môimôi

88

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

MMộộtt data reader chuyểểnn vvềề.. Data reader chchỉỉ ccóó nhinhiệệmm vvụụ llấấyy ddữữ liliệệuu ttừừ CSDL Data reader RRấấtt hay hay đưđượợcc ssửử ddụụngng khikhi chchỉỉ ccầầnn hihiểểnn ththịị ddữữ liliệệuu, , nhnhấấtt llàà trong trưtrườờngng web.web.

DataSet Working with DataSet Working with

DataSet:: DataSet CSDL offline: –– CCóó ttáácc ddụụngng gigiốốngng nhưnhư mmộộtt CSDL offline:

DataSet ccóó ththểể chchứứaa ccáácc DataTable

DataTable, ,

không chchỉỉ ttừừ ccáácc

CSDL, mmàà ccóó ththểể ttừừ ccáácc ttậậpp tin

(text, tin khkháácc (text,

Trong mmộộtt DataSet Trong DataRelation,,…… DataRelation DataSet ccóó ththểể đưđượợcc xâyxây ddựựngng không DataSet truytruy vvấấnn CSDL, Excel, CVS,……)) Excel, CVS, DataSet –– ĐĐểể ttạạoo DataSet

TruyTruy vvấấnn CSDL, DataAdapter CSDL, ddựựaa trêntrên mmộộtt DataAdapter XâyXây ddựựngng bbằằngng ccááchch thêmthêm ccáácc DataTable DataTable

99

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

DataSet Working with DataSet Working with

TruyTruy vvấấnn CSDLCSDL connection. –– MMởở mmộộtt connection. –– TTạạoo mmộộtt DataAdapter data DataAdapter, , chchỉỉ đđịịnhnh câucâu llệệnhnh truytruy vvấấnn chocho data

adapter. adapter.

data set. –– TTạạoo mmớớii mmộộtt data set. Fill() ccủủaa data adapter. –– SSửử ddụụngng phương data adapter. phương ththứứcc Fill() data table XâyXây ddựựngng bbằằngng ccááchch thêmthêm ccáácc data table DataSet.. –– TTạạoo mmớớii mmộộtt DataSet DataTable.. –– TTạạoo mmớớii ccáácc DataTable

DataColumn data table bbằằngng ccááchch thêmthêm mmớớii DataColumn

data table vvààoo data set

data set bbằằngng ccááchch thêmthêm vvààoo thuthuộộcc ttíínhnh

–– Add Add ccáácc data table Tables ccủủaa data set data set Tables

1010

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

KhKhởởii ttạạoo data table ThêmThêm ccáácc dòng data table. dòng ddữữ liliệệuu vvààoo data table.

Working with DataSet Working with

Example DataSet –– Example

= new DataSet

DataSet();();

DataSet dsds = new DataSet DataTable dtdt = = ds.Tables.Add("SampleData DataTable

ds.Tables.Add("SampleData");");

typeof(Guid));)); typeof(string));));

dt.Columns.Add("MonHocID", ", typeof(Guid dt.Columns.Add("MonHocID dt.Columns.Add("TenMon", ", typeof(string dt.Columns.Add("TenMon dt.Columns.Add("MaMon", ", typeof(string dt.Columns.Add("MaMon dt.Columns.Add(““HeSoMon dt.Columns.Add(

typeof(string));)); typeof(int));));

HeSoMon", ", typeof(int

DataRow drdr;; DataRow i = 1; i <= 20; i++) for (intint i = 1; i <= 20; i++) for ( {{

"] = Guid.NewGuid Guid.NewGuid();(); "] = "Mon hoc thuthu " +

" + i.ToString

i.ToString();();

"] = "MaMon00" + i.ToString

i.ToString();();

dt.NewRow();(); drdr = = dt.NewRow dr["MonHocID"] = dr["MonHocID dr["TenMon"] = "Mon hoc dr["TenMon dr["MaMon"] = "MaMon00" + dr["MaMon "] = i; dr["HeSoMon"] = i; dr["HeSoMon dt.Rows.Add(dr);); dt.Rows.Add(dr

}}

1111

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Working with DataSet Working with

Example DataSet –– Example

SqlConnection(source);); conn = new

= new SqlConnection(source SqlCommand(select, , conn conn););

SqlDataAdapter();();

data = new DataSet

DataSet();();

= new SqlCommand(select adapter = new SqlDataAdapter

conn.Open();(); conn.Open adapter.Fill(data);); adapter.Fill(data

SqlException expSQL

expSQL))

}} catch (SqlException catch ( {{ }} finally finally {{

conn.Close();(); conn.Close

}}

1212

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

SqlConnection conn SqlConnection SqlCommand cmdcmd = new SqlCommand SqlDataAdapter adapter = new SqlDataAdapter adapter.SelectCommand = = cmdcmd;; adapter.SelectCommand DataSet data = new DataSet trytry {{

DataSet Working with DataSet Working with

thông tin

SauSau khikhi xâyxây ddựựngng, , điđiềềnn thông data tin vvààoo data set, ccóó ththểể thay (insert, delete, thay đđổổii ddữữ liliệệuu (insert, delete, set, CSDL. update) vvàà ccậậpp nhnhậậtt trtrởở llạạii vvààoo CSDL. update) –– ThuThuộộcc ttíínhnh Rows

Rows ccủủaa DataTable

DataTable llàà mmộộtt

collection. collection.

(insert) mmộộtt row

row mmớớii bbằằngng phương

phương ththứứcc

(update) mmộộtt row

row ccũũ bbằằngng ccááchch thay

thay đđổổii

ThêmThêm (insert) Add() Add() CCậậpp nhnhậậtt (update) ccáácc gigiáá trtrịị ccủủaa rowrow XoXoáá (delete)

(delete) mmộộtt row

row bbằằngng phương

Delete() phương ththứứcc Delete()

1313

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Viewing .NET data Viewing .NET data

song vvớớii viviệệcc xxửử lýlý ddữữ liliệệuu llàà hihiểểnn ththịị

Song song Song ddữữ liliệệuu:: –– .NET

cung ccấấpp ccáácc control

control rrấấtt hihiệệuu ququảả chocho

.NET cung viviệệcc hihiểểnn ththịị ddữữ liliệệuu..

–– ViViệệcc hihiểểnn ththịị ddữữ liliệệuu trêntrên ccáácc control

control nnààyy chchỉỉ đơnđơn gigiảảnn bbằằngng ccááchch chchỉỉ rara ngunguồồnn ddữữ liliệệuu, , ggọọii phương ththứứcc DataBind phương

DataBind()() –– CCáácc đđốốii tưtượợngng hihiểểnn ththịị ddữữ liliệệuu baobao ggồồmm: : Repeter DataList, , Repeter

DataGrid, , DataList DataGrid

1414

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Viewing .NET data Viewing .NET data

trang vvàà ssắắpp xxếếpp ddữữ liliệệuu..

phân trang

(ASP.NET) DataGrid (ASP.NET) DataGrid –– ChoCho phphéépp hihiểểnn ththịị ddữữ liliệệuu dưdướớii ddạạngng bbảảngng.. –– ChoCho phphéépp phân HiHiểểnn ththịị ddữữ liliệệuu form: –– ThiThiếếtt kkếế form:

thiếếtt..

ThêmThêm mmộộtt DataGrid DataGrid.. ThayThay đđổổii ccáácc thuthuộộcc ttíínhnh ccầầnn thi quan trtrọọngng::

thông thưthườờngng llàà khokhoáá chchíínhnh

trong DataSet DataSet) ) ccầầnn hihiểểnn ththịị..

–– ThuThuộộcc ttíínhnh quan DataKeyField: : khokhoáá chchíínhnh ccủủaa lưlướớii, , thông DataKeyField trong bbảảngng ddữữ liliệệuu.. trong DataMember: : bbảảngng ddữữ liliệệuu ((trong DataMember DataSource: : ngunguồồnn ddữữ liliệệuu ccầầnn hihiểểnn ththịị DataSource AutoGenerateColumns: : nnếếuu bbằằngng true, AutoGenerateColumns theo ccáácc ((têntên) ) trưtrườờngng ddữữ liliệệuu trong sinhsinh theo

grid ssẽẽ ttựự đđộộngng

1515

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

true, ccáácc ccộộtt ccủủaa grid trong bbảảngng..

Viewing .NET data Viewing .NET data

khuôn theo nhinhiềềuu khuôn

thi llệệnhnh ((xoxoáá, , sosoạạnn ththảảoo,,……))

dòng ddữữ liliệệuu đưđượợcc click,

click, dòng

dòng nnààyy

(ASP.NET) DataGrid (ASP.NET) DataGrid trong grid: –– CCộộtt trong grid: chocho phphéépp hihiểểnn ththịị theo ddạạngng khkháácc nhau nhau:: text Bound Column: chchỉỉ hihiệệnn ththịị ddữữ liliệệuu ddạạngng text Bound Column: Button Column: chocho phphéépp ththựựcc thi Button Column: Column: siêusiêu liênliên kkếếtt HyperLink Column: HyperLink TemplateColumn: : mmẫẫuu, , chchứứaa mômô ttảả ccủủaa ccộộtt TemplateColumn button column –– VVớớii ccộộtt llàà button column NhưNhư llàà mmộộtt nnúútt llệệnhnh bbììnhnh thưthườờngng Thông thưthườờngng, , ccầầnn xxửử lýlý dòng Thông ssẽẽ đưđượợcc xxáácc đđịịnhnh ddựựaa trêntrên khokhoáá ccủủaa lưlướớii

1616

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Viewing .NET data Viewing .NET data

control DataGrid

DataGrid, , nhưng

nhưng ccóó mmộộtt ssốố

Tương ttựự control

(ASP.NET): Tương

GridView (ASP.NET): GridView khkháácc bibiệệtt –– ThêmThêm mmộộtt ssốố loloạạii ccộộtt mmớớii:: CheckBoxField: : hihiểểnn ththịị ddữữ liliệệuu ddạạngng check; check; CheckBoxField ImageField: : hihiểểnn ththịị ddữữ liliệệuu ddạạngng ảảnhnh.. ImageField ngôn ngngữữ hohoàànn totoàànn;;

thông qua

callback. qua khkhááii niniệệmm callback. control kkếếtt nnốốii vvàà truytruy xuxuấấtt ddữữ liliệệuu ttừừ ngunguồồnn ddữữ

–– HHỗỗ trtrợợ đađa ngôn –– HHỗỗ trtrợợ Ajax Ajax thông Data Source: llàà ccáácc control Data Source: liliệệuu : Access, SQL Server, Object, Site Map, XML –– CCáácc ngunguồồnn ddữữ liliệệuu hhỗỗ trtrợợ: Access, SQL Server, Object, Site Map, XML

file; file;

nhanh ccáácc ngunguồồnn ddữữ liliệệuu phphùù hhợợpp thông thiếếtt kkếế nhanh thông qua

–– ChoCho phphéépp thi –– KhiKhi ggắắnn ngunguồồnn ddữữ liliệệuu vvààoo control winzard;; qua winzard control hihiểểnn ththịị, , ddữữ liliệệuu ssẽẽ đưđượợcc ttựự đđộộngng truytruy

vvấấnn vvàà hihiểểnn ththịị mmàà không không ccầầnn viviếếtt thêmthêm mãmã llệệnhnh;;

1717

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

callback –– RRấấtt ttốốii ưuưu nnếếuu ccóó ssửử ddụụngng callback

Example Example

thiếếtt bbịị vi vi ttíínhnh ccầầnn ququảảnn lýlý ssảảnn

VVíí ddụụ llààmm viviệệcc vvớớii CSDLCSDL –– MMộộtt ccửửaa hhààngng bbáánn thi danh mmụụcc::

theo danh danh mmụụcc nhưnhư: : mainboard

mainboard, chip,

, chip, hddhdd,,……

trong danh

chip danh mmụụcc chip

phphẩẩmm theo CCáácc danh Trong danh Trong ccóó chip AMD, chip Intel (

danh mmụụcc ccóó ccáácc ssảảnn phphẩẩmm: : vvíí ddụụ trong nhau)) dòng khkháácc nhau

chip AMD, chip Intel (ccáácc dòng

–– YêuYêu ccầầuu::

danh mmụụcc ởở mmộộtt bênbên, chi

, chi titiếếtt ccáácc ssảảnn phphẩẩmm ởở mmộộtt

danh mmụụcc, , hihiểểnn ththịị ccáácc ssảảnn phphẩẩmm

HiHiểểnn ththịị danh bênbên KhiKhi ngưngườờii ddùùngng chchọọnn mmộộtt danh tương ứứngng.. tương

1818

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

Example Example

PhânPhân ttííchch –– CCáácc yêuyêu ccầầuu đđầầuu bbààii.. –– ThiThiếếtt kkếế CSDLCSDL

thiếếtt

CCáácc bbảảngng ccầầnn thi CCáácc ththủủ ttụụcc lưulưu, , nnếếuu ccầầnn

(Windows hay –– XXáácc đđịịnhnh môimôi trưtrườờngng ứứngng ddụụngng (Windows hay

Web)Web) –– Design form Design form –– ViViếếtt mãmã ddựựaa trêntrên phân

phân ttííchch yêuyêu ccầầuu

1919

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor:

TTàài li

i liệệu tham kh

u tham khảảoo

i liệệu u

Professional C#, Second Edition Professional C#, Second Edition http://www.asp.net http://www.asp.net http://www.microsoft.com/net/default.mspx http://www.microsoft.com/net/default.mspx http://www.codeproject.com http://www.codeproject.com download tàài li ĐĐịịa cha chỉỉ download t day/tab.aspx http://www.thanglong.edu.vn/giang--day/tab.aspx http://www.thanglong.edu.vn/giang DiDiễễn đn đààn C# & .NET n C# & .NET http://www.thanglong.edu.vn http://www. ory/hoc--taptap--nghien ory/hoc

/forum/cmd/0/categ thanglong.edu.vn/forum/cmd/0/categ net/tab.aspx cuu/dot--net/tab.aspx nghien--cuu/dot

2020

Data Access and Viewing with .NET -- Data Access and Viewing with .NET n Quang Minh Editor: Đo Đoààn Quang Minh Editor: