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: