slidebaigiangc# va linq asp - winform-bài tập

Upload: vietnam-cafejj

Post on 14-Apr-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    1/272

    Nguyn Hong H - Khoa CNTT-HKH 1

    Ni dung hc

    Tng quan v .Net FrameWork

    S dng IDE

    Gii thiu NNLT C#

    WinForm

    LINQ: LINQ TO SQL

    Xy dng ng dng Web

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    2/272

    Nguyn Hong H - Khoa CNTT-HKH 2

    CHNG I

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    3/272

    Nguyn Hong H - Khoa CNTT-HKH 3

    Gii thiu

    .NET Framework l mi trng tch hpnginha vic pht trin v thc thi cc ng dng trnInternet, desktop v cc thitb di ng .

    Cc mc tiu chnh: Cung cpmt mi trnghngitngnht quncho nhiuloingdng

    Cung cpmt mi trnggim ti thius xung t

    phin bn. Cung cp mt mi trng linh ng, da trn cc

    chuncchngnhn c thcha trn btchiu hnh no.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    4/272

    Nguyn Hong H - Khoa CNTT-HKH 4

    Kin trc ca .NET Framework

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    5/272

    Nguyn Hong H - Khoa CNTT-HKH 5

    Kin trc ca .NET Framework

    CLR (Common Language Runtime):Qun l sthc thi m lnh v ttc cc tc v lin quan nn: bin dch, qun l b nh, bo mt, qun ltuynon.M lnhthc thi trong CLR chia lm 2 loi:- m cqun l- m khngcqun ll m lnh khng ci t

    nhng yu cuthc thi trong CLRchnghnnh COM hoc cc thnh phnda trn WindowsAPI.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    6/272

    Nguyn Hong H - Khoa CNTT-HKH 6

    Kin trc ca .NET Framework

    FCL(Framework Class Library ) l thvinkiu d liu c th ti s dng (gm ccclass, structure, ) dnh cho cc ngdng

    thc thi trong .NET.

    Tt c cc ngn ng h tr .NETFramework usdng thvin lp dngchung ny.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    7/272Nguyn Hong H - Khoa CNTT-HKH 7

    Cc bc thc hin ca Cttruyn thng

    Source

    Code

    Compiler

    Executable

    Code

    Code

    Executed

    R

    U

    N

    TI

    M

    E

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    8/272Nguyn Hong H - Khoa CNTT-HKH 8

    Cc bc thc hin ca Cttruyn thng

    Cc ngn ng trc y c chngtrnh dch ring v c mi trng chyring ca n.

    Trong .NET, chng trnh dch dch mngun vo mt "Intermediate Language(IL) v runtime c thay th bi CLR

    (Common Language Runtime).

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    9/272Nguyn Hong H - Khoa CNTT-HKH 9

    Cc bc thc hin ca cc ct .NET

    1st Compliation

    2nd Compliation

    .NET

    SourceCode

    Language

    Compiler

    MSIL

    +Metadata

    CLR

    Machine

    code

    Code

    executed

    Cc chng trnh .NET c dch 2 ln: ln u chm, ln th 2 tngi nhanh hn.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    10/272Nguyn Hong H - Khoa CNTT-HKH 10

    Cc bc thc hin ca cc ct .NET

    Chng trnh ngun trc ht s c bindch v ng gi thnh mtkhigi l assembly(l tphp cc thnh phncng gi trongfile exe hoc dll). Khi ny scha cc m lnhngn ng trung gian (IL) v cc metadata m tthng tin cnthit cho shotngcakhi.

    Mi khi c yu cu thc thi assembly ni trn,CLR s dng trnh bin dch JIT (Just-in-Time)cami trng thc thichuyni IL chatrong n sang dngm lnhcthca mykhingdngthcsthc thi.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    11/272Nguyn Hong H - Khoa CNTT-HKH 11

    Cc bc thc hin ca cc ct .NET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    12/272Nguyn Hong H - Khoa CNTT-HKH 12

    Cc kiu d liu c s ca CTS

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    13/272Nguyn Hong H - Khoa CNTT-HKH 13

    Chng 2

    Gii thiu Visual Studio.NET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    14/272Nguyn Hong H - Khoa CNTT-HKH 14

    S dng IDE Microsoft Visual Studio 2008

    Khi ng Microsoft Visual Studio 2008. File New

    Project to mi mt project

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    15/272Nguyn Hong H - Khoa CNTT-HKH 15

    Chia s IDE

    VS.NET cung cp IDE cho tt c cc ngn

    ng ca n.

    Gip cho ngi lp trnh xy dng 1

    chng trnh nhanh chng v hiuqu

    Khi VS.NET khi ng, th trang StartPagec hin th.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    16/272Nguyn Hong H - Khoa CNTT-HKH 16

    Chia s IDE [3]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    17/272Nguyn Hong H - Khoa CNTT-HKH 17

    Design, Split, Source (WebForm) Design:ch thit k giao din Source:Hin th m HTML t ng pht sinh khi thit k

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    18/272Nguyn Hong H - Khoa CNTT-HKH 18

    Solution Explorer

    Solution Explorer litk cc projects v cc

    file anghotng hin th SolutionExplorer, nhn Ctrl+Alt+L(View|Solution Explorer )

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    19/272

    Nguyn Hong H - Khoa CNTT-HKH 19

    ToolBox

    Bao gm cc iukhin trn Web form vWin form, ActiveX

    controls, XML Webservices, cc thnh

    phn HTML v cc i

    tng. hin th Toolbox,

    nhn Ctrl+Alt+X

    (View|Toolbox).

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    20/272

    Nguyn Hong H - Khoa CNTT-HKH 20

    Server Explorer

    Server Explorer Lptrnh trn CSDL m

    khng cn s dngVS.NET IDE.

    hin th ServerExplorer, nhn

    Ctrl+Alt+S(View|Server Explorer)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    21/272

    Nguyn Hong H - Khoa CNTT-HKH 21

    Class View

    Class view hinth cclp, phng thc vthuc tnh xy

    dng. hinth Class View,

    nhn Ctrl+Alt+C

    (View|Class View).

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    22/272

    Nguyn Hong H - Khoa CNTT-HKH 22

    Properties Window

    Properties window thit lp ccthuc tnh cc iu

    khin, lp vprojects.

    hin th

    Properties Window,nhn F4.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    23/272

    Nguyn Hong H - Khoa CNTT-HKH 23

    K thut IntelliSense

    Thng bo cho ngi lp trnh c phpng v cho php hon thnh t ng 1cu lnh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    24/272

    Nguyn Hong H - Khoa CNTT-HKH 24

    S kin v p ng s kin[1]

    Ta c th tng tc gia cc i tng khc nhaubn trong 1ngdng,gia 1 itng v itngbn ngoi thng qua skin v pngskin.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    25/272

    Nguyn Hong H - Khoa CNTT-HKH 25

    S kin v p ng s kin[2] hin th tt cc cc s kin ca iu khin:

    Chn iu khin Kch vo button Event trn ca s Properties

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    26/272

    Nguyn Hong H - Khoa CNTT-HKH 26

    V d x l s kin

    S kin

    p ng s kin

    Ngi dngchn nt

    Design:hin th b cc ca trangSource:Hin th m t ng pht sinh khito trang Web.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    27/272

    Nguyn Hong H - Khoa CNTT-HKH 27

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    28/272

    Nguyn Hong H - Khoa CNTT-HKH 28

    Ni dung

    Gii thiu

    Bin v cc kiu d liu

    Cc cu trc iu khin: if, switch

    Cc cu trc lp; for, while, do while,

    foreach

    LIST, File vn bn.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    29/272

    Nguyn Hong H - Khoa CNTT-HKH 29

    GII THIU V C#

    L NNLT n gin, hin i, an ton vhng i tng

    L ngn ng mnh nht trong .NET

    Thay th cho C++ C c php ging C++, Java

    S dng con tr d dng hn trong C++

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    30/272

    Nguyn Hong H - Khoa CNTT-HKH 30

    GII THIU V C#

    - bitoncngiiquyt l mt Solution.

    - Mt solution bao gm mt hoc nhiuproject.

    - Mt solution, nu c nhiu project th nncto ra trong mtthmc ring cthcha cc project trong n.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    31/272

    Nguyn Hong H - Khoa CNTT-HKH 31

    C php n gin ca 1 Project

    Using cc Namespace[Namespace Ten]

    {

    - Tp hp cc lp}

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    32/272

    Nguyn Hong H - Khoa CNTT-HKH 32

    Bin

    Khai bo theo c php:

    Mc truy cp Kiu Tn bin

    public

    protected

    private

    int

    string

    ...

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    33/272

    Nguyn Hong H - Khoa CNTT-HKH 33

    Cc kiu s nguyn

    0:264-1S nguyn khng du 64-bitSystem.UInt64ulong

    0:232-1S nguyn khng du 32-bitSystem.UInt32uint

    0:216-1S nguyn khng du 16-bitSystem.UInt16ushort

    0:28-1S nguyn khng du 8-bitSystem.Bytebyte

    -263:263-1S nguyn c du 64-bitSystem.Int64long-2

    31

    :231

    -1S nguyn c du 32-bitSystem.Int32int

    -215:215-1S nguyn c du 16-bitSystem.Int16short

    -27:27-1S nguyn c du 8-bitSystem.SBytesbyte

    Vng biu din(min:max)

    M tKiu trongCTS

    Tn

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    34/272

    Nguyn Hong H - Khoa CNTT-HKH 34

    Kiu s thc, Boolean, k t

    Kiu s thc: float, double

    Kiu Boolean: bool: true|false

    Kiu k t: char Biudin 1 k t 16-bit (Unicode) Cc hngkiu k t c gn bng cch ng trongcpdu nhy n, v d 'A'.

    Ki u d liu tham chi u

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    35/272

    Nguyn Hong H - Khoa CNTT-HKH 35

    Ki u d liu tham chi uc nh ngha sn

    Chui k t UnicodeSystem.Stringstring

    Kiudliugc,mikiudliu khc

    trong CTS ukthaty(kccc kiudliu gi tr)

    System.Objectobject

    M tKiu CTSTn

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    36/272

    Nguyn Hong H - Khoa CNTT-HKH 36

    V d

    protected void Page_Load(object sender, EventArgs e)

    {

    object t;

    t = (object) 5;

    string[] st = new string[2] { "ab","cd" };

    object[] t1;

    t1 = st;Response.Write(t1[1].ToString());

    }

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    37/272

    Nguyn Hong H - Khoa CNTT-HKH 37

    Cc phng thc trn chuiprotected void Page_Load(object sender, EventArgs e)

    { string st1 = " Nguyen Anh Trung ";

    string st2 = "le Tien Tang";

    st1 = st1.Trim();

    Response.Write(string.Format("Chieu dai chuoi la {0}:\n",

    st1.Length));Response.Write(string.Format("Ky tu tai chi so thu 3 la {0}", st1[3]

    string ten1 = st1.Substring(st1.LastIndexOf(' ') + 1);

    string ten2 = st2.Substring(st2.LastIndexOf(" ") + 1,

    st2.Length - st2.LastIndexOf(" ") - 1);

    Response.Write (string.Format("Ten2=ten1:{0}",ten2.Equals(ten1)));

    Response.Write(string.Format("so sanh ten1 voi ten 2: {0}",ten1.CompareTo(ten2)));

    }

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    38/272

    Nguyn Hong H - Khoa CNTT-HKH 38

    Cc phng thc trn chuiprotected void Page_Load(object sender, EventArgs e)

    { string st1 = "Nguyen Anh Trung ";

    Response.Write(string.Format( "Tim chuoi con {0}",

    st1.Contains("yen")));

    st1 = st1.Replace("Nguyen", "Le");Response.Write(st1);

    st1 = st1.Remove(0, 3);

    Response.Write(st1);

    st1 = "Le nam|tink26|dhkh";

    string[] ds = st1.Split('|');

    Response.Write(string.Format("ten:{0},lop:{1},truong{2}",

    ds[0], ds[1], ds[2]));

    Cc ton t

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    39/272

    Nguyn Hong H - Khoa CNTT-HKH 39

    Cc ton t

    checked uncheckediukhin Overflow exception

    Sizeof(Kiu)Thng tin vkiu

    newToitng

    ?:iukin ()p kiu

    []Indexing (cho array v cc indexers)

    .Truy xut thnhphn

    = += -= *= /= %= &= |= ^= =Php gn== != < > =So snh

    >Dch bit

    ++ --Tng v gim

    +Cngchui&& || !Logic

    + - * / %Shc

    K hiuLoi ton t

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    40/272

    Nguyn Hong H - Khoa CNTT-HKH 40

    Lung iu khin ca chng trnh

    Cc cu lnh r nhnh if

    switch

    Cc cu lnh lp for

    while

    do

    foreach

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    41/272

    Nguyn Hong H - Khoa CNTT-HKH 41

    Cu lnh ifint i = 10;

    if (i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    42/272

    Nguyn Hong H - Khoa CNTT-HKH 42

    Cu lnh Switch...

    int i = 2;

    switch (i)

    {

    case 1:

    Response.Write("one");

    break;case 2:

    Response.Write("two");

    break;

    default:

    Response.Write("another value");

    break;}

    ...

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    43/272

    Nguyn Hong H - Khoa CNTT-HKH 43

    Cu lnh Forint s = 0;

    for (int i=1; i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    44/272

    Nguyn Hong H - Khoa CNTT-HKH 44

    Cu lnh while

    int i = 1;int s = 0;

    while (i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    45/272

    Nguyn Hong H - Khoa CNTT-HKH 45

    Cu lnh Foreachint[] a = new int[3];

    a[0] = 10;a[1] = 20;

    a[2] = 30;

    foreach (varb in a){

    Response.Write(b);

    }

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    46/272

    Nguyn Hong H - Khoa CNTT-HKH 46

    ArrayList, LIST

    L mng ng, mi phn t l mt object

    Namespace: System.Collections

    Khai bo:ArrayList = new ArrayList();List =new List()

    List =new List ()

    C h th t A Li t

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    47/272

    Nguyn Hong H - Khoa CNTT-HKH 47

    Cc phng thc trn ArrayList,List

    Add(object): Chn thm 1 phn t vo cuimng

    Clear(): Xo tt c cc phn t

    Contains(object): Tm object trong mng IndexOf(object): Tm ch s ca object trongmng (-1)

    RemoveAt(index): Xo phn t th index

    Thuc tnh: count: cho bit s phn t trongmng

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    48/272

    Nguyn Hong H - Khoa CNTT-HKH 48

    Thao tc trn File

    Namespace: System.IO;

    Cc i tng thao tc trn File: Stream,StreamReader, StreamWriter, FileStream.

    Thao tc trn file vn bn: StreamReader,StreamWriter.

    M file vn bn c:StreamReader = new StreamReader(dd"[,Encoding]);

    M file vn bn ghi:StreamWriter = new StreamWriter (dd[, bool

    append][,Encoding])

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    49/272

    Nguyn Hong H - Khoa CNTT-HKH 49

    Cc phng thc trn StreamReader

    Close(): ng file

    Peek(): Tr v k t tip theo, -1;:EOF

    Read(): c k t tip theo ReadBlock(): c dy cc byte

    ReadLine(): c 1 dng

    ReadToEnd(): c ht file

    Cc phng thc trn StreamWriter

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    50/272

    Nguyn Hong H - Khoa CNTT-HKH 50

    Cc phng thc trn StreamWriter

    Close(): ng file

    Write WriteLine: ghi file

    V d:StreamWriter f = new

    StreamWriter("d:\\tt.txt",true,Encoding.Unicode);

    f.WriteLine("cng");

    f.Write("abc");

    f.Close();

    S

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    51/272

    Nguyn Hong H - Khoa CNTT-HKH 51

    V d StreamReaderusing System;

    using System.IO;

    StreamReader f = new StreamReader("d:\\tt.txt");

    string ht;while(f.Peek()>=0)

    {

    ht = f.ReadLine();

    Response.Write(ht);

    }

    f.Close();

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    52/272

    DataTable- Name space: using System.Data;

    -To bng:DataTable bien = new DataTable("tenbang");

    To ct: bien.Columns.Add(tencot");

    - To thm dng:DataRow dong=bien.NewRow();

    Dong[tencot]=gia tri

    dt.Rows.Add(dr);dt.AcceptChanges();

    - Bien.Rows: tr v tp hp cc dng- Bien.Coumns: Tr v tp cc ct

    V d v DataTable

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    53/272

    V d v DataTableprotected void Page_Load(object sender, EventArgs e)

    { DataTable dt = new DataTable("Sach");

    // to ra 2 ct (field) ca bng Sachdt.Columns.Add("Masach"); // To ra ct MaSach

    dt.Columns.Add("Tensach"); // To ra ct TenSach

    DataRow dr = dt.NewRow();//To thm 1 dng mi

    dr["Masach"] = "s1"; //Nhp d liu cho ct m sch

    dr["TenSach"] = "tin";dt.Rows.Add(dr); //Thm dng vo dt

    dr = dt.NewRow(); //To thm 1 dng mi

    dr["Masach"] = "s2";

    dr["TenSach"] = "hoa";

    dt.Rows.Add(dr);dt.AcceptChanges();

    for(int i=0;i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    54/272

    Nguyn Hong H - Khoa CNTT-HKH 54

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    55/272

    Nguyn Hong H - Khoa CNTT-HKH 55

    Ni dung

    Lp i tng Hm dng

    Hm hu

    Trng

    Phng thc

    L i t

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    56/272

    Nguyn Hong H - Khoa CNTT-HKH 56

    Lp i tngMctruycp class :

    { - Hm dng (Constructors) Hm hu (Destructors) Hng (Constants) Trng (Fields) Phng thc (Methods)

    Thuc tnh (Properties) Ch mc (Indexers) S kin (Events) Con tr hm (Delegates)

    Lp con (Classes) Giao din (Interfaces) Cu trc (Structs)

    }

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    57/272

    Nguyn Hong H - Khoa CNTT-HKH 57

    Mc truy cp

    Bin hocphng thc ch c th c truy xut tbn trong kiudliu m n thucv

    private

    Bin hocphng thc c th c truy xut trongphm vi assembly hin ti, hoc t cc kiu d liudnxuttkiudliucha n

    protected

    internal

    Bin hocphng thc ch c th truy xut t bntrong kiu d liu m n thuc v, hoc cc kiu dliudnxut

    protected

    Binhocphngthcch c th truy xut trongphmvi cng assembly

    internal

    Binhocphngthc c thc truy xuttbtcni no

    public

    M tMc truy cp

    V d

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    58/272

    Nguyn Hong H - Khoa CNTT-HKH 58

    V dpublic class Class_b

    { private class Class_b1

    { }

    public class Class_b2

    { }

    }

    class Program

    { public void test()

    {Class_b t2 = new Class_b();

    Class_b.Class_b1 t21 = new Class_b.Class_b1();

    Class_b.Class_b2 t22= new Class_b.Class_b2();

    }

    H d (C t t )

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    59/272

    Nguyn Hong H - Khoa CNTT-HKH 59

    Hm dng (Constructors)

    L mt loi c bit ca phng thc trong mt lp c gi khi mt lp c to.

    Thng c s dng khi to cc gi tr trongmt lp.

    Tn trng vi tn lp

    Khng tr v gi tr

    Nu khng to ra hm dng C# s to ra hm dng

    ngm nh Mtlp c th c nhiu hm dngnhng khc nhau

    vslnghockiuca tham s

    V d C

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    60/272

    Nguyn Hong H - Khoa CNTT-HKH 60

    V d vConstructorsusing System;

    public class Person

    {public string Ten,dc=Khong co ;public Person(string Ten){

    this.Ten = Ten;}public Person(string Ten,string dc)

    {

    this.Ten = Ten;this.dc = dc;

    }}

    V d C t t

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    61/272

    Nguyn Hong H - Khoa CNTT-HKH 61

    V d vConstructors

    public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    person p1 = new person("hung");

    Response.Write(p1.Ten + p1.dc);

    person p2 = new person("Nga","hue");

    Response.Write(p2.Ten + p2.dc);

    }

    }

    D t t

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    62/272

    Nguyn Hong H - Khoa CNTT-HKH 62

    Destructor

    Destructors trong C# gi l b thu gom rcGarbage Collectors. B thu gom rc s gii phng b nh khi

    i tng khng cn yu cu hoc tham

    chiu. Destructors khai bo nh sau:

    ~()//ging tn lp

    {//cc ci t ca ngi lp trnh

    }

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    63/272

    Nguyn Hong H - Khoa CNTT-HKH 63

    Cc trng (Fields)

    Lu tr gi tr

    C php:

    Mc truy cp: public, private, protected,internal, protected internal

    Kiu: Kiu gi tr c nh ngha sn (int,char )

    Kiu tham chiu: lp, struct, mng, chui,.

    V d

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    64/272

    Nguyn Hong H - Khoa CNTT-HKH 64

    V dnamespace Vidu

    {

    class Class_Lop{ }

    class SinhVien

    { public string hoten;

    private bool GioiTinh;protected DateTime NgaySinh;

    internal float[] DsDiem = new

    float[100];

    Class_Lop Lop= newClass_Lop();

    }

    class Program

    {

    static void Main(string[] args)

    {

    SinhVien sv =new SinhVien();

    sv.hoten = "Nguyen Nam";//sv.GioiTinh = false;

    //sv.NgaySinh =

    DateTime.Parse("12/10/79");

    sv.DsDiem[0] = 5;

    }

    }}

    Trng tnh [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    65/272

    Nguyn Hong H - Khoa CNTT-HKH 65

    Trng tnh [1]

    c khai bo trong 1 lp Khi sdng khng cnphito ra lpcha

    trngtnh

    Khi khai bo ch cn dng static trc tn

    bin

    Truy xut: .tn trngtnh

    V d trng tnh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    66/272

    Nguyn Hong H - Khoa CNTT-HKH 66

    V d trng tnhusing System;

    public class List{

    public static int Dem= 0;public List()//Hm dng: cgi khi tolp{Dem++;}

    }

    public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    Response.Write(List.Dem);

    List n1 = new List();Response.Write(List.Dem);List n2 = new List();Response.Write(List.Dem);}

    }

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    67/272

    Nguyn Hong H - Khoa CNTT-HKH 67

    Phng thc(method)

    L tp hp cc cu lnh c khai bo trong lp hoc cu trc,

    phi ch r mc truy cp, tn, kiu tr

    v,danh sch cc tham s. Nu khng ctham sphi c cpdungoc Phng thc khng tr v gi tr c kiu

    trv l void Dng return trv gi tr caphng

    thc

    Tham chiu ref and out [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    68/272

    Nguyn Hong H - Khoa CNTT-HKH 68

    Tham chiu ref and out [1]using System;

    public class Point

    {

    int x;

    int y;

    public Point(int x,int y)

    {

    this.x = x;

    this.y = y;

    }

    public voidGetPoint(int x,int y)

    {x = this.x;

    y = this.y;

    }

    }

    Tham chiu ref and out [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    69/272

    Nguyn Hong H - Khoa CNTT-HKH 69

    Tham chiu ref and out [2]public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    int x = 0; //int x; --> Error

    int y = 0; //int y; --> Error

    Point p = new Point(100,200);p.GetPoint(x,y);

    Response.Write("({0},{1})",x,y);

    }

    }

    Output:

    (0 0) Tham chiu ref and out [3]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    70/272

    Nguyn Hong H - Khoa CNTT-HKH 70

    Tham chiu ref and out [3]using System;

    public class Point

    {

    int x;

    int y;

    public Point(int x,int y)

    {

    this.x = x;

    this.y = y;

    }

    public voidGetPoint(ref int x,ref int y)

    {x = this.x;

    y = this.y;

    }

    }

    Tham chiu ref and out [4]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    71/272

    Nguyn Hong H - Khoa CNTT-HKH 71

    Tham chiu ref and out [4]public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    int x = 0; // int x; --> Error

    int y = 0; // int y; --> Error

    Point p = new Point(100,200);p.GetPoint(ref x,ref y);

    Console.WriteLine("({0},{1})",x,y);

    }

    } Output:

    (100,200)-phi khi to gi tr cho cc tham s-Khi xy dng v gi phng thc phi dng ref

    Tham chiu ref and out [5]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    72/272

    Nguyn Hong H - Khoa CNTT-HKH 72

    Tham chiu ref and out [5]using System;

    public class Point

    {

    int x;

    int y;

    public Point(int x,int y)

    {

    this.x = x;

    this.y = y;

    }

    public voidGetPoint(out int x,out int y)

    {x = this.x;

    y = this.y;

    }

    }

    Tham chiu ref and out [6]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    73/272

    Nguyn Hong H - Khoa CNTT-HKH 73

    Tham chiu ref and out [6]public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    int x;

    int y;

    Point p = new Point(100,200);p.GetPoint(outx,outy);

    Console.WriteLine("({0},{1})",x,y);

    }

    }

    Output:(100,200)

    Khng cn khi to gi tr cho cc tham s

    Khi xy dng v gi phng thc phi dng out

    Danh sch cc tham s c chiu di thay i [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    74/272

    Nguyn Hong H - Khoa CNTT-HKH 74

    Danh sch cc tham s c chiu di thay i [1]

    C# cho php khai bo 1 tham snhng khigiphngthc th slng tham s c th

    thay i

    V dnh WriteLine()

    Sdng t kho params khai bo tham

    s c chiu di thay i.

    K tha

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    75/272

    Nguyn Hong H - Khoa CNTT-HKH 75

    K tha

    - C# ch h tr n ktha, tc l mt lpchc th k tha nhiunhtl tmtlp cha

    - Lp c s nht trongC# l lp System.Object

    class LopCon : LopCha

    { Cai dat lop con}

    V d v k tha [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    76/272

    Nguyn Hong H - Khoa CNTT-HKH 76

    V d v k tha [1]using System;

    public class Person

    {

    protectedstring name; //protected Field

    public Person(string name) //Function as a Constructor

    {this.name = name;

    }

    }

    public class Employee:Person{public Employee(string name):base(name){}

    }

    V d v k tha [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    77/272

    Nguyn Hong H - Khoa CNTT-HKH 77

    [ ]public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e){

    Person p1 = new Person("Harry Potter");

    Respone.Write(p1.name);

    }}

    V d v k tha [3]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    78/272

    Nguyn Hong H - Khoa CNTT-HKH 78

    V d v k tha [3] Person l lp c s (lp cha).

    Employee l lp dn xut (lp con) t lpPerson, v th:

    N k tha tt c cc d liu v hm thnhvin ca lp cha (tr private)

    Constructors khng t ng k tha ln lpcha, do ngi s dng phi ch r:

    public Employee(string name):base(name){}

    Hm np chng (Overloading )

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    79/272

    Nguyn Hong H - Khoa CNTT-HKH 79

    p c g (O e oad g )

    Hm np chng l hm trng tn trong mt lp

    nhng khc nhau v s lng v kiu ca cc

    tham s

    Khng npchngda vo tn tham s v kiutrvca cc tham s.

    V d [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    80/272

    Nguyn Hong H - Khoa CNTT-HKH 80

    [ ]class TinhDt

    {public double Dt(double r)

    {

    return ((double)Math.PI*r*r);

    }

    public double Dt(double a,double b)

    { return a*b;

    }

    public double Dt(double a,double b,double c)

    { double p=(a+b+c)/2;

    return Math.Sqrt(p*(p-a)*(p-b)*(p-c));

    }

    V d [3]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    81/272

    Nguyn Hong H - Khoa CNTT-HKH 81

    V d [3]

    public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    TinhDt DienTich=new TinhDt();Console.WriteLine("Dt HT {0}",DienTich.Dt(3));

    Console.WriteLine("Dt HCN {0}",DienTich.Dt(3,4));

    Console.WriteLine("Dt HTG{0}",DienTich.Dt(3,4,5));

    }

    }

    Hm ghi (Overriding) [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    82/272

    Nguyn Hong H - Khoa CNTT-HKH 82

    Hm ghi (Overriding) [1]

    Hm ghi l hm ging nhau trn c lpcha v lp con.

    ghi mt hm c trn lp cha: Khai bo mt hm mi trong lp con vi tn

    ging vi lp cha.

    S dng tnew.

    Hm o (Virtual Functions) [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    83/272

    Nguyn Hong H - Khoa CNTT-HKH 83

    Hm o (Virtual Functions) [1]

    Cch xy dng hm ogingnh hm ghi nhng s dng t kho virtual tronghm calp cha v override trong hm calp con

    Khi gi hm, trnh bin dchs nhn vo lpthcscto ra v gi hm tngngtrn lp ny

    Giao din (Interfaces)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    84/272

    Nguyn Hong H - Khoa CNTT-HKH 84

    Giao din (Interfaces)

    Giao dingingnhlptrutng Cha cc phng thc tru tng nhng

    khng ci t.

    Mt lpktha ln 1 giao dinphi ci tttc cc phngthc trn giao din.

    Mtlpchktha ln 1 lp khc nhng c th

    ktha trn nhiu giao din.

    V d [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    85/272

    Nguyn Hong H - Khoa CNTT-HKH 85

    V d [1]

    using System;

    interfaceMusic

    {

    voidPlayMusic(string filename);

    voidEndPlay();

    }

    V d [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    86/272

    Nguyn Hong H - Khoa CNTT-HKH 86

    Vd [2]public classWinamp:Music

    {

    publicWinamp(){

    }

    public voidPlayMusic(string filename)

    {

    }

    public voidEndPlay(){

    }

    }

    THUC TNH

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    87/272

    Nguyn Hong H - Khoa CNTT-HKH 87

    THUC TNH

    Giithiu

    Cc loicathuc tnh

    Thuc tnh v trng Thuc tnh v phng thc

    Thuc tnh tnh

    Gii thiu [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    88/272

    Nguyn Hong H - Khoa CNTT-HKH 88

    Gii thiu [1] Thuc tnh trong 1 lp c s dng ly

    v thay i gi tr trong lp. Mt thuc tnh thng c 2 khi lnh:

    Get: tr v mt gi tr

    Set: Gn mt gi tr mi T kho value c s dng xc nh gi tr

    c gn trong khi set.

    Gingnh hm thuc tnh c th dng btvirtual, override, abstract, static

    V d [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    89/272

    Nguyn Hong H - Khoa CNTT-HKH 89

    [ ]using System;

    public class Person{

    string name; // Field

    public stringName // Property

    {

    get{

    return (name);

    }

    set

    {

    name = value;

    }

    }

    }

    V d [3]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    90/272

    Nguyn Hong H - Khoa CNTT-HKH 90

    [ ]public partial class _Default : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    Person p = new Person();

    p.Name = "John Smith";

    Response.Write("Person name is {0}",p.Name);}

    }

    Output:Person name is John Smith

    Cc loi thuc tnh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    91/272

    Nguyn Hong H - Khoa CNTT-HKH 91

    Read/Write: Thuc tnh c c get v set.

    Read-Only: Thuc tnh ch c get.

    Write-Only: Thuc tnh ch c set.

    X l ngoi l (Exception Handling)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    92/272

    Nguyn Hong H - Khoa CNTT-HKH 92

    g ( p g)

    Dng Trying v Catching

    Kin trc cangoil

    Truynngoil Sdng Finally

    Ngoi l [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    93/272

    Nguyn Hong H - Khoa CNTT-HKH 93

    g [ ]

    Ngoi l c pht sinh khi chy chngtrnh bli.

    Ngoil cung cpy thng tin vlixyra.

    Ki n trc phn t ng ca ngoi l[2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    94/272

    Nguyn Hong H - Khoa CNTT-HKH 94

    [2]

    Exception

    IOException

    System Exception

    OutOfMemoryException

    OverflowException

    CoreException

    NullReferencException

    Trying v Catching [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    95/272

    Nguyn Hong H - Khoa CNTT-HKH 95

    y g g [ ]

    Khi try chaonchng trnh Khi catch x l li, khi c lixy ra.

    Dng 1 khi try nhng c th nhiu khi

    catch

    Khng c try v catch chng trnh dngli(treo) v a ra li.

    Trying v Catching [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    96/272

    Nguyn Hong H - Khoa CNTT-HKH 96

    y g g [ ]using System;class Test

    {public static voidMain(){int Zero = 0;try{

    int j = 22 / Zero;}catch (Exception e){

    //X l li

    }

    } Cc lnh sau catch}

    Trying v Catching [3]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    97/272

    Nguyn Hong H - Khoa CNTT-HKH 97

    y g g [ ]int Zero = 0;try

    { int j = 22 / Zero;}catch (DivideByZeroException e){

    //X l li1

    }catch (Exception e){

    ////X l li 2

    }

    Trying v Catching [4]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    98/272

    Nguyn Hong H - Khoa CNTT-HKH 98

    y g g

    Ktquhinth:

    Loi 1:Attempted to divide by zero.

    Sau catch

    Truyn ngoi l [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    99/272

    Nguyn Hong H - Khoa CNTT-HKH 99

    Trong 1 strnghp chng ta khng x l

    khi lixy ra, chng ta cntruyn cc li nyn hm gi n

    C 3 cch lm iu ny:

    Khng x l li Truynlin hm cgi

    Truynlicthn hm cgi.

    Truyn ngoi l[2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    100/272

    Nguyn Hong H - Khoa CNTT-HKH 100

    Khng x l liusing System;

    public class SumClass{

    int sum= 0;

    int count = 0;

    int average = 0;

    public voidCalculateAverage(){ try

    {

    average = sum/count;

    }catch{}

    }

    }

    Truyn ngoi l[4]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    101/272

    Nguyn Hong H - Khoa CNTT-HKH 101

    Btli, sau truynli ny n hm cgiusing System;

    public class SumClass{ int sum= 0;

    int count = 0;

    int average = 0;

    public voidCalculateAverage(){ try

    {

    average = sum/count;

    }

    catch (DivideByZeroException e){throw e;

    }

    }

    }

    Truyn ngoi l[6]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    102/272

    Nguyn Hong H - Khoa CNTT-HKH 102

    X l li, sau truyn cc lix l n hm cgi.

    using System;public class SumClass

    { int sum= 0;

    int count = 0;

    int average = 0;

    public voidCalculateAverage(){ try

    {

    average = sum/count;

    }

    catch (DivideByZeroException e){

    throw (new DivideByZeroException(Loi roi:"));

    }

    }

    S dng Finally

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    103/272

    Nguyn Hong H - Khoa CNTT-HKH 103

    Khi Finally cha on chng trnh lun lun

    thchin cho d c pht sinh li hay khng?try{

    //onchng trnh

    }

    catch

    {

    //X l li

    }

    finally{

    //onchng trnh lun thchin

    }

    Thc hnh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    104/272

    Nguyn Hong H - Khoa CNTT-HKH 104

    To 1 Project vi tn ThucHanh

    To file ds.txt (Project -> Add New Item -> TextFile -> Name: ds.txt) vini dung:

    sv1|L thng nam|5|Tink32

    sv2|ch|9|TinK32sv3|vn Nam|10|Tink31

    Sv4|Nguyn Hong Nam|2|TinK31

    Sv5|Trndng|3|HoaK19

    Thc hnh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    105/272

    Nguyn Hong H - Khoa CNTT-HKH 105

    Tolp CauHinh ktnin file ds.txtusing System.IO ;namespace ThucHanh{

    public class CauHinh

    {public static StreamReader f;public CauHinh(string DD){

    f = new StreamReader(DD);}

    }

    }

    To Lp SinhVien

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    106/272

    using System.Collections.Generic ;

    namespace ThucHanh

    { public class SinhVien{

    private string masv;

    public string Masv

    {

    get { return masv; }

    set { masv = value; }

    }

    private string hoten;

    public string Hoten{

    get { return hoten; }

    set { hoten = value; }

    }

    private double dtb;

    public double Dtb

    {get { return dtb; }

    set { dtb = value; }

    }

    private string tenlop;

    public string Tenlop

    {

    get { return tenlop; }

    set { hoten = value; }

    }public SinhVien(string masv, string ht,

    double dtb, string tenlop)

    { this.masv = masv; this.hoten = ht;this.dtb = dtb; this. tenlop= tenlop

    } }}

    To 1 lp: LopHoc cha cc sinh vin

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    107/272

    using System.Collections.Generic ;

    using System.Data;

    namespace ThucHanh

    {

    public class LopHoc

    {

    public List LstSinhvien ;public DataTable DtSinhVien ;

    public LopHoc()//Hm dng{

    LstSinhvien = new List();//To List

    DtSinhVien = new DataTable("Sinhvien"); //Tao DataTable

    DtSinhVien.Columns.Add("Masv");//To cc ct ca bngDtSinhVien.Columns.Add("Hoten");

    DtSinhVien.Columns.Add("DTB");

    DtSinhVien.Columns.Add(TenLop");

    while (true)//Duyt file ds.txt{

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    108/272

    string st = CauHinh.f.ReadLine();//c ra 1 dngif (st == "" || st == null) { CauHinh.f.Close(); break; }

    string[] tam = st.Split('|');//Tch ra cc thng tinSinhVien sv = new SinhVien(tam[0],tam[1],double.Parse(tam[2]), tam[3] );

    LstSinhvien.Add(sv);//Np d liu vo ListDataRow dr = DtSinhVien.NewRow(); //To 1 dng mi trn bngdr["masv"] = tam[0]; dr["hoten"] = tam[1];

    dr["DTB"] = double.Parse(tam[2]); dr[tenlop"] = tam[3];DtSinhVien.Rows.Add(dr);

    DtSinhVien.AcceptChanges();

    }

    }

    }

    }

    Lp trnh trn s kin Page_Load ca trang

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    109/272

    Default.aspx

    protected void Page_Load(object sender, EventArgs e){ //To ra ng kt ni n file tt.txt

    CauHinh kn = new CauHinh(Server.MapPath("ttt.txt"));

    LopHoc sv = new LopHoc();

    //Hin th cc sinh vin trn ListResponse.Write("Danh sach cac sinh vien tren List ");for (int i = 0; i < sv.LstSinhvien.Count; i++)

    {

    Response.Write(sv.LstSinhvien[i].Masv +"
    ");Response.Write(sv.LstSinhvien[i].Hoten + "
    ");

    Response.Write(sv.LstSinhvien[i].Dtb.ToString() + "
    ");

    }

    //Hin thi cc sinh vin trn DataTable

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    110/272

    //Hin thi cc sinh vin trn DataTableResponse.Write("Danh sach cac sinh vien tren DataTable ");for (int i = 0; i < sv.DtSinhVien.Rows.Count; i++){

    Response.Write(sv.DtSinhVien.Rows[i]["Masv"].ToString() + "
    ");Response.Write(sv.DtSinhVien.Rows[i]["hoten"].ToString() + "
    ");Response.Write(sv.DtSinhVien.Rows[i]["DTB"].ToString() + "
    ");

    }}

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    111/272

    Trn lp: LopHoc vit cc phng thc : Hin th cc sinh vin ln lp

    Hin th cc sinh vin li

    Tnh TBC ca TB ca cc sinh vin To file olai.txt lu cc sinh vin li

    Xa cc sinh vin li ra khi file ds.txt

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    112/272

    Chng 4

    WINFORM

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    113/272

    Nguyn Hong H - Khoa CNTT-HKH 113

    Ni dung

    Cc lp th vin

    Cc thuc tnh v phng thc

    X l s kin

    Cc thnh phn giao din c bn

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    114/272

    Nguyn Hong H - Khoa CNTT-HKH 114

    Application

    User Interface

    Program

    Cc lp th vin

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    115/272

    Nguyn Hong H - Khoa CNTT-HKH 115

    Cc lp th vin

    .Net Framework da trn cch tip cn hng

    i tng

    Cc lp th vin c chia vo cc namspace

    V dSystem.Windows.forms

    Cc thuc tnh v phng thc

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    116/272

    Nguyn Hong H - Khoa CNTT-HKH 116

    Cc thuc tnh v phng thc

    Frog

    Height :12 cmWeight :100gmName : Jumpie

    Jump

    HeightWeightName

    Th hin ca lp

    S ki ki [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    117/272

    Nguyn Hong H - Khoa CNTT-HKH 117

    S kin v p ng s kin[1]

    Ta c th tng tc gia cc i tng khc nhaubn trong 1ngdng,gia 1 itng v itngbn ngoi thng qua skin v pngskin.

    S kin v p ng s kin[2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    118/272

    Nguyn Hong H - Khoa CNTT-HKH 118

    hin th tt cc cc s kin ca iu khin kchvo button Event trn Properties window.

    V d x l s kin

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    119/272

    Nguyn Hong H - Khoa CNTT-HKH 119

    private void button1_Click(object sender, System.EventArgs e){

    }

    Ngi dng

    chn nt

    S kin

    p ng s kin

    MessageBox.Show("Goodluck to you!");

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    120/272

    Nguyn Hong H - Khoa CNTT-HKH 120

    ng dng Windows

    Thnh phn c bn l Form

    Hin th thng tin ca ngi dng

    Nhn thng tin t ngi dng

    Mt ng dng c th c nhiu Form

    WinForms

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    121/272

    Nguyn Hong H - Khoa CNTT-HKH 121

    WinForms

    Form c trnh by nh 1 lp trong

    WinForms. Btk khi no ngdnguc to th 1 form

    sc thm vo

    WinForms sto ra 1 thhincalp Form

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    122/272

    Nguyn Hong H - Khoa CNTT-HKH 122

    Cc iu khin (Controls)

    Trn Form c th c nhiu iu khin hin th v

    nhp d liu ca ngi dng. C th thit k cc iu khin Toolbox

    Cc thuc tnh chung cho cc Controls

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    123/272

    Nguyn Hong H - Khoa CNTT-HKH 123

    Visible

    TextName

    ForeColor

    EnabledCanFocus

    BackColor

    Thuc tnh

    Controls

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    124/272

    Nguyn Hong H - Khoa CNTT-HKH 124

    Controls

    Label

    TextBox

    Button

    ListBox

    ComboBox

    CheckedListBox

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    125/272

    Nguyn Hong H - Khoa CNTT-HKH 125

    PROPERTIES

    Image

    TabStop

    Paint

    Events

    Methods

    Label

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    126/272

    Nguyn Hong H - Khoa CNTT-HKH 126

    PROPERTIES

    Events

    Methods

    AcceptReturn

    MaxLengthMultiline

    Passwordchar

    ReadOnly

    ScrollBars

    ClearCopyCut

    MultilineChanged

    TextChanged

    TextBox

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    127/272

    Nguyn Hong H - Khoa CNTT-HKH 127

    PROPERTIES

    Events

    Methods

    DialogResult

    TextAlign

    Button

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    128/272

    Nguyn Hong H - Khoa CNTT-HKH 128

    PROPERTIES

    Items

    MultiColumn

    SelectedIndex

    SelectedItem

    SelectedItems

    SelectedValue

    Sorted

    Text

    ListBox [1]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    129/272

    Nguyn Hong H - Khoa CNTT-HKH 129

    EventsMethods

    ClearSelected

    FindString

    GetSelected

    SetSelected

    SelectedIndexChanged

    SelectedValueChanged

    ListBox [2]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    130/272

    Nguyn Hong H - Khoa CNTT-HKH 130

    PROPERTIES

    Events

    Methods

    CheckedIndices

    CheckedItemsThreeDCheckBoxes

    GetItemChecked

    GetItemCheckState

    SetItemChecked

    SetItemCheckStateItemCheck

    CheckedListBox

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    131/272

    Nguyn Hong H - Khoa CNTT-HKH 131

    PROPERTIES

    Events

    Methods

    DropDownStyleFocused

    MaxDropDownItems

    Select

    SelectAll

    DropDown

    ComboBox

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    132/272

    Nguyn Hong H - Khoa CNTT-HKH 132

    T kho this

    idin cho Form hinthi truy xutn ttc cc thuc tnh, phngthc,trng v skinca Form hinthi.

    V d

    this.[controlname].[propertyname]

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    133/272

    Nguyn Hong H - Khoa CNTT-HKH 133

    To WinForm Applications

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    134/272

    Nguyn Hong H - Khoa CNTT-HKH 134

    pp

    File -> New -> Project

    Thm 1 Item vo project

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    135/272

    Nguyn Hong H - Khoa CNTT-HKH 135

    p j

    Project -> Add New Item

    Label: Properties: Image

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    136/272

    Nguyn Hong H - Khoa CNTT-HKH 136

    Npnh vo Label:Properties: Image= Image.FromFile(fileName);

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    137/272

    Nguyn Hong H - Khoa CNTT-HKH 137

    Properties: Image= Image.FromFile(fileName);Event: Click, DoubleClick: Thay i nh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    138/272

    Nguyn Hong H - Khoa CNTT-HKH 138

    Gi s trong Bin c 7 nhc tn 1 jpg 2 jpg

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    139/272

    Nguyn Hong H - Khoa CNTT-HKH 139

    c tn 1.jpg, 2.jpg,

    int i =1 ;

    private void label1_Click(object sender, EventArgs e)

    {label1.Image = Image.FromFile(i.ToString()+".jpg");

    i++;

    if (i == 7) i = 1;

    }

    checkedListBox: Properties: Items,...Method: GetItemChecked, ...

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    140/272

    Nguyn Hong H - Khoa CNTT-HKH 140

    checkedListBox1 list1

    comboBox1

    Khi nhn enter trn textBox1

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    141/272

    Nguyn Hong H - Khoa CNTT-HKH 141

    private void textBox1_KeyPress(object sender,

    KeyPressEventArgs e)

    { if(e.KeyChar==13)

    checkedListBox1.Items.Add(textBox1.Text);

    }

    Khi chn trn 1 mc trn checkedListBox1

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    142/272

    Nguyn Hong H - Khoa CNTT-HKH 142

    private void checkedListBox1_ItemCheck(object

    sender, ItemCheckEventArgs e)

    {listBox1.Items.Add(checkedListBox1.Items[e.Index]);

    }

    Khi chn chn trn butsend

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    143/272

    Nguyn Hong H - Khoa CNTT-HKH 143

    private void butSend_Click(object sender, EventArgs e)

    {

    for (int i = 0; i < checkedListBox1.Items.Count; i++)

    if (checkedListBox1.GetItemChecked(i) )

    comboBox1.Items.Add(checkedListBox1.Items[i]);

    comboBox1.Text = comboBox1.Items[0].ToString() ;

    }

    imageList, listView

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    144/272

    Nguyn Hong H - Khoa CNTT-HKH 144

    imageList: Properties: Images,...

    listView

    Properties: Columns

    Items (Items.Add(...), Items[i].SubItems[i]

    SmallItemList

    View, GridLine,

    DialogResult MessageBox (text, caption,MessageBoxButtons)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    145/272

    Nguyn Hong H - Khoa CNTT-HKH 145

    Hm kim tra xem c H tn trng nhau hay khng?

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    146/272

    Nguyn Hong H - Khoa CNTT-HKH 146

    bool Kiemtra(string ht){

    for (int i = 0; i < listView1.Items.Count; i++)

    if (listView1.Items[i].Text.Equals(ht))return false;

    return true;

    }

    Kch vo nt Nhpprivate void butNhap_Click(object sender, EventArgs e)

    {

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    147/272

    Nguyn Hong H - Khoa CNTT-HKH 147

    {

    DialogResult kq=DialogResult.Yes;

    bool kt = Kiemtra(textHoten.Text);if(!kt)kq = MessageBox.Show(" c nv ny, nhp thm hay

    khng ?","Thng bo",MessageBoxButtons.YesNo) ;

    if(kq==DialogResult.Yes ||kt==true){

    string[] st = new string[3];

    st[0] = textHoten.Text;

    st[1] = textDiachi.Text;

    st[2] = textGioiTinh.Text;ListViewItem lv = new ListViewItem(st);

    listView1.Items.Add(lv);

    }

    }

    timer, progressBar

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    148/272

    Nguyn Hong H - Khoa CNTT-HKH 148

    timerProperties:

    Enable Interval

    Methods:

    Tick

    progressBar Properties:

    Maximum

    Minimum Value

    statusStrip

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    149/272

    Nguyn Hong H - Khoa CNTT-HKH 149

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    150/272

    Nguyn Hong H - Khoa CNTT-HKH 150

    DongHo TienTrinh DieuKhien

    statusStrip

    Lp trnh trn timer1_Tick()

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    151/272

    Nguyn Hong H - Khoa CNTT-HKH 151

    private void timer1_Tick(object sender, EventArgs e)

    { DateTime dh=DateTime.Now;

    DongHo.Text = dh.ToLongTimeString() ;TienTrinh.Maximum = 60;

    TienTrinh.Minimum = 0;

    TienTrinh.Value = dh.Second;

    }

    colorDialog

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    152/272

    Nguyn Hong H - Khoa CNTT-HKH 152

    Properties: Color; method: ShowDialog

    private void button1_Click(object sender, EventArgs e){

    colorDialog1.ShowDialog();textBox1.ForeColor = colorDialog1.Color;

    }

    colorDialog

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    153/272

    Nguyn Hong H - Khoa CNTT-HKH 153

    Properties: Color; method: ShowDialog

    private void button1_Click(object sender, EventArgs e){

    colorDialog1.ShowDialog();textBox1.ForeColor = colorDialog1.Color;

    }

    fontDialog,saveFileDialog, openFileDialog

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    154/272

    Nguyn Hong H - Khoa CNTT-HKH 154

    Method: ShowDialog();

    Properties:

    Font FileName

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    155/272

    Nguyn Hong H - Khoa CNTT-HKH 155

    OpenFile

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    156/272

    Nguyn Hong H - Khoa CNTT-HKH 156

    private void butOpen_Click(object sender, EventArgs e){

    try{

    openFileDialog1.ShowDialog();StreamReader f=new

    StreamReader(openFileDialog1.FileName);

    textBox1.Text = f.ReadToEnd();

    }catch(Exception e1){MessageBox.Show(e1.Message); }

    }

    SaveFile

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    157/272

    Nguyn Hong H - Khoa CNTT-HKH 157

    private void butSave_Click(object sender, EventArgs e){

    try {

    saveFileDialog1.ShowDialog();

    StreamWriter f = new

    StreamWriter(saveFileDialog1.FileName);

    f.WriteLine(textBox1.Text);

    f.Close();

    }catch (Exception e1) { MessageBox.Show(e1.Message); }

    }

    Font

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    158/272

    Nguyn Hong H - Khoa CNTT-HKH 158

    private void butFont_Click(object sender, EventArgs e){

    fontDialog1.ShowDialog();

    textBox1.Font = fontDialog1.Font;

    }

    menuStrip

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    159/272

    Nguyn Hong H - Khoa CNTT-HKH 159

    M Form1:Form1 f = new Form1();f.Show();

    toolStrip

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    160/272

    Nguyn Hong H - Khoa CNTT-HKH 160

    Data Binding

    L s kt hp gia cc iu khin thit k giao din nh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    161/272

    Nguyn Hong H - Khoa CNTT-HKH 161

    Cc iu khin giao din Cc ngun d liu

    V d V d

    ComboBox

    DataBinding

    L s kt hp gia cc iu khin thit k giao din nhTextBox, ListBox, vi cc ngun d liu nh DataSet,DataTable, Table, BindingSource,

    Misthay i trn cc iukhin giao dinsnhhngnngundliu v ngcli

    Data Binding

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    162/272

    Nguyn Hong H - Khoa CNTT-HKH 162

    To lp TaoBang Lp ny cha bng lm ngun d liupublic class TaoBang

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    163/272

    public class TaoBang

    { //to bng PhanLoaipublic static DataTable dt = new DataTable("PhanLoai");

    public TaoBang()

    { dt.Columns.Add("Maloai" ); //To ct MaLoai

    dt.Columns.Add("TenLoai"); //To ct TenLoaifor(int i=1;i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    164/272

    Nguyn Hong H - Khoa CNTT-HKH 164

    C 2 loi Binding:

    - DataBinding n gin (Simple DataBinding): Timtthiim,mt gi trn trong ngundliu

    c thbbuc vo btkmtiukhin.

    Bucdliu vo TextBox: txt1

    txt1.DataBindings.Add("Text", ngun,tntrng");

    Khi mi thay i trn DataTable dt s nh

    hngn TextBox txt1 v ngcli.

    V d buc d liu vo TextBox

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    165/272

    private void Form1_Load(object sender, EventArgs e)

    {

    new TaoBang();

    txtmaloai.DataBindings.Add("Text", TaoBang.dt, "maloai");txttenloai.DataBindings.Add("Text", TaoBang.dt, TenLoai");

    }

    Cc loi Binding (2)DataBindingphc tp (Complex DataBinding): Cc d liu trong

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    166/272

    Nguyn Hong H - Khoa CNTT-HKH 166

    ngund liubbuc vo mtiukhin thay v chmt gi tr

    n. Chc DataGidView, ComboBox v listBox htrchcnng

    DataBinding phctp.

    - Dng cc thuc tnh: DataSource,DataMember hoc

    DisplayMemberbuc vo cc iukhinV d: Gis c DataTable dt chadliubng PhanLoai:

    listBox1.DataSource = dt; listBox1.DisplayMember = "TenLoai";

    dataGridView1.DataSource = ds; dataGridView1.DataMember = "PhanLoai comboBox1.DataSource = ds; comboBox1.DisplayMember = "PhanLoai.TenLoai"; ";

    Cc loi Binding (3)-Bucdliu vo dataGridView: dataGridView1

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    167/272

    Nguyn Hong H - Khoa CNTT-HKH 167

    - dataGridView1.DataSource = Ngundliu;

    dataGridView1.DataMember = tn bng trong ngun

    V d Buc d liu vo dataGridView: dataGridView1

    private void Form1_Load(object sender, EventArgs e)

    {

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    168/272

    {

    new TaoBang();txtmaloai.DataBindings.Add("Text", TaoBang.dt, "maloai");

    txttenloai.DataBindings.Add("Text", TaoBang.dt, TenLoai");

    dataGridView1.DataSource = TaoBang.dt;

    }

    TaoBang.dt

    (PhanLoai)

    Cc loi Binding (4)+ BucdliuvoListbox, Combox: Listbox1, Combox1

    li tB 1 h C b 1 D t S d li

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    169/272

    Nguyn Hong H - Khoa CNTT-HKH 169

    listBox1 hoc Combox1 .DataSource = ngun d liu;

    listBox1 hoc Combox1 .DisplayMember = Tn trng hin th"; listBox1 hoc Combox1 . ValueMember = Tn trng cha gi tr";+ Ly gi tr ca ValueMember:

    listBox1 hoc Combox1 .SelectedValue+ Ly gi tr ca DisplayMember :

    listBox1 hoc Combox1.Text

    Buc d liu vo Listbox, Combox: Listbox1, Combox1

    private void Form1_Load(object sender, EventArgs e)

    { new TaoBang();

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    170/272

    { new TaoBang();

    txtmaloai.DataBindings.Add("Text", TaoBang.dt, "maloai");txttenloai.DataBindings.Add("Text", TaoBang.dt, TenLoai");

    dataGridView1.DataSource = TaoBang.dt;

    listBox1.DataSource = TaoBang.dt;

    listBox1.DisplayMember = "tenLoai";

    listBox1.ValueMember = "maloai";

    comboBox1.DataSource = TaoBang.dt;comboBox1.DisplayMember = "tenLoai";

    comboBox1.ValueMember = "maloai";

    }

    S dng BindingSource L con tr n ngun d liu

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    171/272

    S dng BindingSource buc d liu thay vdng ngun d liu

    Dng BindingSource c th thm, xa, sa dliu trn ngun d liu.

    .DataSource=ngun d liu

    Nhp, xa, lu ngun d liu

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    172/272

    .AddNew() .RemoveCurrent()

    . EndEdit()

    V d BindingSource

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    173/272

    private void Form1_Load(object sender, EventArgs e){

    new TaoBang();

    bindingSource1.DataSource = TaoBang.dt;

    txtmaloai.DataBindings.Add("Text", bindingSource1, "maloai");

    txttenloai.DataBindings.Add("Text", bindingSource1, TenLoai");

    dataGridView1.DataSource = bindingSource1;

    }

    private void butNhap_Click_1(object sender, EventArgs e)

    {

    bindingSource1 AddNew();

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    174/272

    bindingSource1.AddNew();

    }

    private void butXoa_Click(object sender, EventArgs e)

    {

    bindingSource1.RemoveCurrent();}

    private void butLuu_Click(object sender, EventArgs e)

    {

    bindingSource1.EndEdit();

    }

    BindingContext Cch tng tc gia 1 ngundliuvittc cc iukhin

    b buc trn form

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    175/272

    Nguyn Hong H - Khoa CNTT-HKH175

    bbuc trn form

    Mi Form u c mt thuc tnh BindingContext. MtBindingContext c mt tphp cc BindingManagerBase, cc

    itng ny cto ra khi dliubuc vo mtiukhin.

    Mt CurrencyManager c th duy tr mt v tr hin thi bn

    trong ngundliu v khi v tr ny thay i th dliu trn cc

    iukhinbbuc trn form stng thay i theo .

    Mt CurrencyManagerchc to ra mt ln cho mtngun

    dliu. Nu hai TextBox bbuc vo 1 dng ca DataTable khi

    ch c mt CurrencyManager c to ra trong

    BindingContext

    BindingContext

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    176/272

    Nguyn Hong H - Khoa CNTT-HKH176

    Gets hoc sets i tng hin thi trong danhsch cc i tng c qun l trongCurrencyManager

    Position

    Gi trca cc itnghinthi trong ngundliu

    Current

    S dng cqun l trong CurrencyManagerCount

    Tp hp cc i tng Binding c qun lbi CurrencyManager

    BindingsM tThuc tnh

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    177/272

    Gii thiu

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    178/272

    LINQ (Language Integrated Query) l smrngca .Net Frame Work. N bao gmngn ng tch hp truy vn, l sm rng

    C# v Visual Basic vi c php ngn ngring cho cc truy vn v cung cp cc thvin truy xutdliu.

    V sao phi dng LINQ?

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    179/272

    Data IS Everywhere

    ButData != Objects

    Objects Data

    V sao phi dng LINQ ?

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    180/272

    !=

    Kin trc ca LINQ

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    181/272

    LINQ to Objects: Cung cp cc khnng truy vnIEnumerable , da trn mng, collections v list

    LINQ to XML: gip cho ngi lp trnh thao tc trn

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    182/272

    LINQ to XML: gip cho ngilp trnh thao tc trn

    cc truy vn XPath / XQuery mt cch nhanh chngvhiuqu. LINQ to SQL: c s dng truy cp cc i

    tngcsdliu quan hnh cc itng .NET.

    LINQ to SQL tch hp SQL da trn cc nhnghacalc. Cung cp cch nh mnhm,kim trac php, IntelliSense trn cc itng SQL.

    LINQ to DataSet: Cung cp cc khnng truy vn

    ADO.NET Dataset. Linq to Entities: cung cpkhnng truy vn trn cc

    thcth ADO.NET.

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    183/272

    Gii thiu

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    184/272

    LINQ to SQL l mt phin bn hin thc ha caO/RM (object relational mapping) c bn trong .NETFramework 3.5, cho php m hnh ha mtcsdliu dng cc lp .NET. Sau bn cth truy vn

    c s d liu (CSDL) dng LINQ, cng nh cpnht/thm/xa dliut.

    LINQ to SQL htry transaction, view v ccstored procedure (SP). N cng cung cp mt cchd dng thm khnngkim tra tnh hplcadliu v cc quy tc vo trong m hnh dliu

    To CSDL trong SQL SERVER 2005

    CSDL ny c s dng v d trong bi

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    185/272

    CSDL ny c s dng v d trong bi

    ging

    Kt ni n CSDL- View -> Server Explorer

    Kch phi chut ln DataConnection > Add Connection

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    186/272

    - Kchphichut ln DataConnection -> Add Connection

    Hiu chnh ng kt ni trong fileWeb.config

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    187/272

    To ra m hnh d liu LINQ TO SQL

    To ra lp DataContext

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    188/272

    Project -> Add New Item -> LINQ To SQLClasses -> ti Name g tn: QlNvDb.dbml

    M ca s Server Explorer -> chn Table ->Gi phm Ctrl ngthichnttc cc bng ->ko cc bng ny vo ca s ca fileQlNvDb.dbml

    To ra m hnh d liu LINQ TO SQL

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    189/272

    Cc thnh phn ca lp DataContext

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    190/272

    Cc thnh phn ca lp DataContext

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    191/272

    Cc thnh phn ca lp DataContext

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    192/272

    Cc thnh phn ca lp DataContext

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    193/272

    Cc truy vn

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    194/272

    Biu thc truy vn

    Bin a phngkiu tham chiu

    Biu thcLambda

    Cc phngthc m rng Kiu nc danh Khi to cc i

    tng

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    195/272

    Cc ton t trong LINQ TO SQL

    Select

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    196/272

    Select manv, hoten from nhanvien

    Take, Skip

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    197/272

    select top 2 manv, hoten from nhanvien

    db.NhanViens.Skip(4).Take(2);

    Ly v gi tr ca dng 5 v 6

    Order by

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    198/272

    select manv, hoten, hesoluong fromnhanvien order by hesoluong desc

    Distinct

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    199/272

    select distinct madonvi from nhanvien

    var q = (from p in db.NhanViens

    select new { madv=p.MaDonVi }).Distinct() ;

    Where

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    200/272

    select manv, hoten, hesoluong from nhanvienwhere madonvi='dv1'

    Where

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    201/272

    select manv, hoten, hesoluong from nhanvienwhere hoten like N%Nguyn%'

    Join

    select manv hoten tendonvi from donvi

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    202/272

    select manv, hoten, tendonvi from donvi

    inner join nhanvien on donvi.madonvi=nhanvien.madonvi

    Group

    l t T D Vi (h l *830000) f d i i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    203/272

    select TenDonVi,sum(hesoluong*830000) from donvi inner

    join nhanvien on donvi.madonvi=nhanvien.madonvi

    group by TenDonVi

    var q = from dv in db.DonVisjoin nv in db.NhanViens on dv.MaDonVi equals nv.MaDonVi

    group nv by nv.DonVi.TenDonVi into kqselect new{Madv=kq.Key ,

    Tongluong=kq.Sum(t=>t.HeSoLuong*830000)};

    Cc hm tp hp

    l t (h l *830000) f h i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    204/272

    select sum(hesoluong*830000) from nhanvien

    Select avg(hesoluong) from nhanvien

    Select count(*) from nhanvien

    Select Max(hesoluong) from nhanvien

    Select Min(hesoluong) from nhanvien

    var l = db.NhanViens.Sum(nv => nv.HeSoLuong * 830000);

    var tb = db.NhanViens.Average(nv => nv.HeSoLuong );

    var snv = db.NhanViens.Count();var max = db.NhanViens.Max(nv => nv.HeSoLuong);

    var min = db.NhanViens.Min(nv => nv.HeSoLuong);

    Thm

    Insert into nhanvien values('nv123',N'Nguyn Hong

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    205/272

    H','11/22/1976',1,3,'dv1')

    Xa

    D l t f h i h 1

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    206/272

    Delete from nhanvien where manv=nv1

    Sa

    d t h i t h l h l +1 h

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    207/272

    update nhanvien set hesoluong=hesoluong+1 where

    madonvi='dv1'

    S dng th tc v View

    TimN l

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    208/272

    TimNv l

    Chng 6

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    209/272

    LP TRNH NG DNG WEBVI ASP.NET

    Ni dung

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    210/272

    Kin trc ca ng dng Web

    Cng ngh pht trin ng dng Web

    (ng) Kin trc

    HTML

    Web ng

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    211/272

    Ni dung c Web Server sinh ra khi c yucu t Client.

    Ni dung hin th ti cc ln duyt khc nhau l

    khc nhau. Rt ph dng: Hu ht cc trang web thng

    mi u l web ng.

    S dng ngn ng lp trnh sinh ra trangHTML.

    S dng CSDL.

    Web ng

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    212/272

    Web ng

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    213/272

    CSDL

    WebServer

    WebBrowser

    DatabaseProvider

    http://www....

    Yu cu d liu

    Thao tc CSDLD liu

    D liu

    Ni dung (HTML)

    Cng ngh pht trin Web(ng)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    214/272

    a dng v khng ngng c phttrin.

    Microsoft:ASP, ASP.NET

    Sun: Java Servelet, JSP.

    Khc: PHP

    ASP.NET - Kin trc

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    215/272

    ASPX

    .ASPX

    ASP.NET - Kin trc

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    216/272

    Client

    (Browser)

    ASP.DLL

    IISVBScript

    JavaScript

    ActiveX Data

    Objects

    (ADO)

    Database ASP file

    ASP.NETc im

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    217/272

    Hngitng: Mi trang bao gm hai itngktha nhau. Tch m giao din (HTML) vi m x l bng

    kthutCodebehind.

    => D vit chng trnh, tm li. => Giu c m (m c dch thnh DLL).

    .aspx .aspx.cs

    ASP.NETc im (2)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    218/272

    Cc iu khin pha Server (server-sidecontrols).

    => C th x l tt c trn server.

    ASP.NETc im (3)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    219/272

    Cc iu khin pha Server (server-sidecontrols).

    Auto PostBack cho tng iu khin => Bts kin trn iu khin n gin.

    ASP.NETc im (3)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    220/272

    Cc iu khin pha Server (server-side controls).Kim tra hp thc (validation)

    Cn m Ty bin (CustomValidator) Khng cn m

    Yu cu nhp (RequiredFieldValidator) Trong khong (RangeValidator) So snh (CompareValidator) Biu thc chung (RegularExpressionValidator)

    HTML

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    221/272

    Khi nim

    HTML (HyperText Markup Language) l ngn ngnhdngvnbn siu lin kt. Snhdngda

    trn cc tab hoc cc on m cbitnhdumtvnbn,mt file nh ... gip cho Web Browerthng dch v hinth chng ln mn hnh. HTML cnhng phn m rng rt quan trng cho php

    nhng lin kt hypertext tmt ti liu ny nmtti liu khc.

    Cu trc c bn ca mt file HTML

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    222/272

    HTML

    Gii thiu 1 s th HTML

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    223/272

    , , , ,

    Tn lin kt

    V d: Cc th HTML

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    224/272

    Cc iu khin pha Server

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    225/272

    Label

    PROPERTIES

    ID: tn ca LabelText: Tiu

    TextBox

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    226/272

    Nguyn Hong H - Khoa CNTT-HKH 226

    PROPERTIES Events

    ID

    AutoPostBack

    TextTextMode TextChanged

    Button

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    227/272

    Nguyn Hong H - Khoa CNTT-HKH 227

    PROPERTIES Events

    ID

    Text

    LinkButton

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    228/272

    Nguyn Hong H - Khoa CNTT-HKH 228

    PROPERTIES Events

    ID

    PostBackUrl

    Th thao

    Text

    DropDownList (ListBox)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    229/272

    Nguyn Hong H - Khoa CNTT-HKH 229

    PROPERTIES Events

    ID

    AutoPostBack

    SelectedIndexChanged

    Text

    Np d liu DropDownList (ListBox)

    .DataSource = list hoc DataTable;

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    230/272

    Nguyn Hong H - Khoa CNTT-HKH 230

    .DataValueField = Tn trng"; .DataTextField = Tn trng"; .DataBind();

    CauHinh ch=new CauHinh(Server.MapPath(ds.txt"));LopHoc lh= new LopHoc();

    DropDownList1.DataSource = lh.DtSinhVien;

    DropDownList1.DataValueField = "masv";DropDownList1.DataTextField = "hoten";

    DropDownList1.DataBind();

    Image

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    231/272

    Nguyn Hong H - Khoa CNTT-HKH 231

    PROPERTIES

    ID

    ImageUrl

    FileUpload

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    232/272

    Nguyn Hong H - Khoa CNTT-HKH 232

    PROPERTIES Methoad

    ID

    SaveAs

    GridView

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    233/272

    .DataSource =List, DataTable

    .DataBind()

    CauHinh ch = new

    CauHinh(Server.MapPath(ds.txt"));LopHoc lh = new LopHoc();

    GridView1.DataSource = lh.DtSinhVien;GridView1.DataBind();

    DataList

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    234/272

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    235/272

    .DataSource =list, DataTable;

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    236/272

    .DataBind();

    CauHinh ch = newCauHinh(Server.MapPath(ds.txt"));

    LopHoc lh = new LopHoc();

    DataList1.DataSource = lh.DtSinhVien;

    DataList1.DataBind();

    V d

    To trang HtSinhVien.aspx vi giao din:

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    237/272

    T ToolBox:

    -To 2 Label

    -1 DropDownList: vi tn DropDownList1,

    thuc tnh AutoPostBack=true

    -1 GridView vi tn GridView 1

    Lp trnh trn s kin Page_Load ca trang np cc tn lp vo DropDownListprotected void Page_Load(object sender, EventArgs e)

    { if (!IsPostBack)

    { CauHinh ch = new CauHinh(Server.MapPath(ds.txt"));

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    238/272

    LopHoc lh = new LopHoc();

    List lssv = lh.LstSinhvien;

    List tam = new List();

    for (int i = 0; i < lssv.Count; i++)

    { string tenlop = lssv[i].Tenlop;

    int j;

    for (j = 0; j < i; j++)

    if (tenlop.Equals(lssv[j].Tenlop )) break;

    if (j == i) tam.Add(lssv[i]);

    }

    DropDownList1.DataSource = tam;

    DropDownList1.DataTextField = "tenlop";

    DropDownList1.DataBind();

    }

    }

    SelectedIndexChanged ca DropDownList tm sinh vin theo tn lp

    protected void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)

    {

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    239/272

    CauHinh ch = new CauHinh(Server.MapPath("ttt.txt"));

    LopHoc lh = new LopHoc();

    List lssv = lh.LstSinhvien;

    List tam = new List();

    string tenlop = DropDownList1.Text ;

    for (int i = 0; i < lssv.Count; i++)

    {

    if (tenlop.Equals(lssv[i].Tenlop))

    tam.Add(lssv[i]);

    }GridView1.DataSource = tam;

    GridView1.DataBind();

    }

    }

    To trang thongke.aspx

    T ToolBox to 1ListBox hin th

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    240/272

    ttc cc tn lp- Khi chn 1 tn lp

    trn ListBox s hinth cc sinh vin calp ny ra Gridview

    - Khi chn nt Danhsch ln lpshinth danh sch ccsinh vin ln lp(tb>=5) ca lp

    chn ListBoxx raGridView v hin ths sinh vin ln lp

    - Tng t cho ntDanh sch sinhvin

    LM VIC VI STYLESHEET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    241/272

    CSS thc cht l mt tp cc qui tc format/ nh kiu (style) cho cc phn tc hin th v nh v trn trang web.

    Nh vo CSS m vic nh dng (kiu)cho cc phn t tr nn d dng v linhhothnrtnhiu.

    LM VIC VI STYLESHEET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    242/272

    Cc nh ngha v CSS c th c tngay trong tp ngun nhng cng c thc t ring ra mt tp khc. Tp ny

    thng c ui m rng l css.

    LM VIC VI STYLESHEET

    To 1 file CSS

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    243/272

    Web site -> AddNew Item ->

    STYLESHEET -

    > G tn file

    Ni dung ca tp ch cha cc nh ngha CSS (Gm nhngha b chn th, chn ID, v lp).

    LM VIC VI STYLESHEET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    244/272

    Kch chut phi trang -> Add Style Rule

    Element: nh dng li cc th c ( V d a: hover)

    Class name: To 1 lp mi (v d: .Mau)

    Element Id: To 1 ID cc phn t c cng ID s nhdng ging nhau( v d: #TieuDe)

    LM VIC VI STYLESHEET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    245/272

    Kch chut phi ln v tr cn nh dng -> AddStyle -> Chn mc cn nh dng nh hnh trn

    LM VIC VI STYLESHEET

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    246/272

    Np file Css vo trang: M trang ch Source

    v dng th:

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    247/272

    php ta thitkiukhinda trn cc k thut m talp trnh trn trang ASP.NET.

    Khi s dng UserControl, ta phi nhng chng votrang ASP.NET thay v thc thi mt mnh ging nh

    trang ASP.NET, phn m rng ca UserControl lASCX.

    Sau khi thit k xong UserControl ta chn chng t cas Solution Explored v ko th vo trang ASP.NET

    qun l ta to mt th mc lu ccWebUserControl:

    Web Site | New Folder| g tn th mc l UC

    S DNG WEB USER CONTROL

    1

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    248/272

    + To ra 1 WebUserControl: Kch chut phi ln tnth mc UC | Add New Item | Web User Control |g tn WebUserControl | Add:

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    249/272

    CC I TNG ASP.NET

    GII THIU

    Active Server Pages (ASP): lkchbnchy pha Server, 1 W bS th l d l i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    250/272

    cung cp 1 WebServer cthx l cc ngdng logic vtrv HTML cho browser.

    Web Forms: Cung cp cc cng cthitkvsonthoForm

    Design:hin th b cc ca trang Source:Hin th m t ng pht sinh khi to trang Web. Web.config: lfile XML cha cu hnh trong project. Global.asax lfile t chn c s dng thao tc trn

    cc s kin mc ng dng. *.aspx, *.aspx.cs: Desgn, Codebehind

    Th mc o

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    251/272

    Request and Response Resquest:

    C S S

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    252/272

    Nhn yu cu t Client gi n Server khi nt Submitc nhn.

    Khi nhn nt Submit th d liu ca cc iukhin bntrong Form scgin Server (Post).

    nhn c d liu gi t Form (client):

    Request.Form[tn iu khin]; nhn c tham s gi bng Get (Dng th ) Request.QueryString[tn tham s]);

    Response:

    Gi d liu t Client n Server Phng thc:

    Write(d liu); Redirect(URL);

    Request and Response

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    253/272

    Nhap.htm

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    254/272

    M Loi:

    Tn Loi

    NhapHtml.aspxprotected void Page_Load(object sender, EventArgs e)

    {

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    255/272

    {

    string ma = Request.Form["txtma"];

    string ten = Request.Form["txtten"];

    Response.Write("M Loai:" + ma);

    Response.Write("
    Tn Loi" + ten);

    }

    i tng ServerServer.property | methodC php

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    256/272

    HTMLEncode

    MapPath

    MachineName

    Methods

    cn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;datasource=" + Server.MapPath("qlthuvien.mdb"));

    Response.Write(alo);

    Response.Write(Server.HtmlEncode(alo));

    i tng Session

    Lu tr cc thng tin ca ngi dngt 1 hi l i

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    257/272

    trong 1 phin lm vic. Binlutr trong Session khng b xo i

    khi ngi dng chuyn t trang ny sang

    trang khc. WebServer s t ng to ra khi ngi

    dng yu cu 1 trang web, b gii phng

    khi kt thc phin lm vic Session[tnbin ]= object

    To lp Global khi to cc Session

    Project -> Add New Item -> Global Application

    Class

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    258/272

    Class

    Khi to cc Session

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    259/272

    V d 1

    Tomt Website sinh vin mn sch trong

    th i bao cc WebPage:

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    260/272

    thvin bao gm cc WebPage: Qlthuvien.aspx: Cha giao din chnh Dangky.Aspx:ngnhp. Hienthi. Aspx: Hinthttc cc sch Mn. Asp: mn sch.

    Yu cu: ngi s dng phi ng nhp mic xem hocmn sch.

    Ta phi to ra 1 phin lm vic (Session) kim tra xem ngi dng ngnhpcha?

    Qlthuvien.aspx

    t t d id Li kB tt 3D Cli k( bj t d E tA )

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    261/272

    protected void LinkButton3Dn_Click(object sender, EventArgs e)

    {

    Response.Redirect("Dangky.aspx");

    }protected void LinkButton1HT_Click(object sender, EventArgs e)

    {

    Response.Redirect("Hienthi.aspx");

    }..

    DangKy.aspx

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    262/272

    protected void ButDangNhap_Click(object sender, EventArgs e){

    Session["ID"] = TextID.Text;

    ....

    }

    HienThi.aspx

    protected void Page Load(object sender EventArgs e)

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    263/272

    protected void Page_Load(object sender, EventArgs e){

    if (Session["Id"] == null || Session["Id"] == "")

    Response.Redirect("~/Dangky.aspx");

    //

    }

    Bi thc hnh (Session)To ra trang Web n gin mua hng trn mng:

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    264/272

    GridView1

    To lp GioHang.cs nhp thm1 hng vo gi

    public class Giohang

    { public DataTable dt = new DataTable("Hang");

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    265/272

    { public DataTable dt = new DataTable( Hang );public Giohang()

    { dt.Columns.Add("TenHang");

    dt.Columns.Add("Soluong");

    }public void ThemGiohang(string th,string sl)

    { DataRow dr = dt.NewRow();

    dr[0] = th;

    dr[1] = sl;dt.Rows.Add(dr);

    dt.AcceptChanges();

    }

    Lp trnh trn nt mua v gi hngprotected void butMua_Click(object sender, EventArgs e)

    {

    if (Session["gh"] == null)

    gh = new Giohang();

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    266/272

    gh = new Giohang();

    else

    gh = (Giohang) Session["gh"];

    gh.ThemGiohang(DropDownList1.Text, textSoluong.Text);

    Session["gh"] = gh;}

    protected void ButGioHang_Click(object sender, EventArgs e)

    { Giohang gh = (Giohang)Session["gh"];

    if (gh != null) {GridView1.DataSource = gh.dt;

    GridView1.DataBind();

    }

    }

    Yu cu b sung To CSDL qlhang.mdb bao gmbng hang(mahang,tenhang,gia),

    khachhang(hoten,diachi,tenhang,soluong,thanhtien).

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    267/272

    DropDownList1 Hin thttc cc tn hng cabng hng

    Trong gi hng thm trngThanhTien=Slng * gi.

    Kimtr xem trong gi hng nu c tn hng thtngslng, tnh li thnh tin.

    To thm nt Thanh Ton: ngi dng nhph tn va

    ch v chuyn tt c hng trong gi hng vo bng

    Khachhang

    Bin Application

    Dng qun l cc bin c phm vi ton ngdng C tc dng n mi ngi dng

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    268/272

    dng. C tc dngnmingi dng.

    Bin ton ngdng l bin c tc dngivimingi dng truy cp vo website. Mi trang

    aspx u c th truy cpnbin ny v d btkthiim no.

    Application[tn bin"] =

    Khi to gi trbin trong Application_Start calp Global

    LinqDatasource

    T Data trn ToolBox chn 1 LinqDataSource

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    269/272

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    270/272

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    271/272

    Buc d liu vo GridView

  • 7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp

    272/272