Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts

Monday, December 3, 2012

Video Hướng dẩn: ListBox DataGridView trong C#

Video Hướng dẩn: Report trong C#

Video Hướng dẩn: Connect ADU Data trong C#

Video Hướng dẩn: LoadData ListBox trong C#

Thêm,sửa,xóa trong C#


ĐỀ BÀI
Người ta muốn ứng dụng tin học để quản lý nhân sự của 1 doanh nghiệp. Là một lập trình viên, anh (chị) hãy thực hiện các yêu cầu sau đây:

Câu 1:

Sử dụng hệ quản trị cơ sở dữ liệu SQL Server, tạo 1 database có tên là QLNHANSU gồm 2 bảng sau:
- PHONGBAN(mapb, tenpb)
- NHANVIEN(manv, tennv, ngaysinh, sodt, mapb)

Yêu cầu:

- Chọn kiểu dữ liệu và kích thướt của các trường trong các bảng mà theo sinh viên là phù hợp nhất (0.5 điểm).
- Thiết lập quan hệ cho các bảng trong CSDL (0.5 điểm).
- Nhập ít nhất 3 bản ghi cho bảng PHONGBAN và 5 bản ghi cho bảng NHANVIEN (0.5 điểm).

Câu 2:

Tạo 1 project đặt tên là QLNHANSU với giao diện như hình bên dưới (2 điểm):


Câu 3: (6,5 điểm)
Viết mã lệnh cho chương trình để thực hiện được các yêu cầu sau:

1. Khi chương trình vừa thực thi thì hiển thị toàn bộ tenpb trong bảng PHONGBAN vào ListBox Danh sách phòng ban, các nútChấp nhậnHủy bỏ ở trạng thái không kích hoạt được. Các nút này chỉ có thể kích hoạt khi đang thêm mới hoặc sửa đổi dữ liệu của 1 bản ghi (1.5 điểm).

2. Khi chọn 1 phòng ban bất kỳ trong ListBox Danh sách phòng ban thì hiển thị toàn bộ thông tin về nhân viên của phòng ban tương ứng vào DataGridView Danh sách nhân viên (0.5 điểm) và các TextBox (1 điểm) hiển thị thông tin tương ứng của dòng đầu tiên (nếu có) trong DataGridView, hoặc khi kích vào 1 dòng bất kỳ trong DataGridView.

3. Khi nhấn nút Thêm mới, hay nút Sửa đổi thì chuyển sang chế độ thêm mới hoặc sửa đổi (0.5 điểm).

4. Khi nhấn nút Chấp nhận (1 điểm) hoặc Hủy bỏ (0.5 điểm) thì thực hiện hoặc hủy bỏ thao tác thêm mới hay sửa đổi ngay trước đó.

5. Khi nhấn nút Thoát, đưa ra một MessageBox với nội dung “Bạn có muốn đóng chương trình không?”, nếu chọn nút Yes thì đóng, ngược lại thì không (0.5 điểm).

6. Khi nhấn nút Xóa, đưa ra MessageBox với nội dung “Bạn có chắc chắn xóa nhân viên này không?”, nếu chọn Yes thì thhực hiện xóa nhân viên hiện tại, ngược lại thì không xóa (1 điểm).

Bài Làm:Đầu tiên tạo 1 class ketnoi(kết nối) với code sau

[CODE]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace QLNHANSU
{
    public static class ketnoi
    {
       
        public static string chuoiketnoi = @"Data Source=.\SQLEXPRESS;Initial Catalog=QLNHANSU;Integrated Security=True";
        public static SqlConnection con;
        public static SqlCommand cmd;
        public static SqlDataAdapter da;

        public static void openketnoi()
        {
            con = new SqlConnection(chuoiketnoi);
            con.Open();
        }
        public static void dongketnoi()
        {
            con.Close();
        }
        // phuong thuc get
        public static DataTable gettable(string sql)
        {
            cmd = new SqlCommand(sql, con);
            da = new SqlDataAdapter(cmd);
            DataTable db = new DataTable();
            da.Fill(db);
            return db;
        }
        public static void executeQuery(string sql)
        {
            cmd = new SqlCommand(sql, con);
            cmd.ExecuteNonQuery();
        }
    }
}

[/CODE]

CODE From

[CODE]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLNHANSU
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string ma = lbdspb.SelectedValue.ToString();
            dtgvpb.DataSource = ketnoi.gettable("select *from nhanvien where nhanvien.mapb='"+ma+"'");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            load();
        }
        public void load()
        {
            ketnoi.openketnoi();
            //load listBox
            lbdspb.DataSource = ketnoi.gettable("select *from phongban");
            lbdspb.DisplayMember = "tenpb";
            lbdspb.ValueMember = "mapb";

            //Load DataGridView
            dtgvpb.DataSource = ketnoi.gettable("select *from nhanvien");

            bntChapNhan.Enabled = false;
            bntHuy.Enabled = false;
            ketnoi.dongketnoi();
        }

        // Khi click vào 1 dòng bất kỳ trong DataGridView hiện lên TextBox
        private void dtgvpb_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int t = dtgvpb.CurrentCell.RowIndex;
            tbMaNV.Text = dtgvpb.Rows[t].Cells[0].Value.ToString();
            tbTenNV.Text = dtgvpb.Rows[t].Cells[1].Value.ToString();
            tbNgaySinh.Text = dtgvpb.Rows[t].Cells[2].Value.ToString();
            tbDT.Text = dtgvpb.Rows[t].Cells[3].Value.ToString();
            tbMaPB.Text = dtgvpb.Rows[t].Cells[4].Value.ToString();
        }
        private int chon = 0;
        //Button sửa
        private void bntSua_Click(object sender, EventArgs e)
        {
            chon = 2;
            bntChapNhan.Enabled = true;
            bntHuy.Enabled = true;

        }
        //Button thêm
        private void bntThem_Click_1(object sender, EventArgs e)
        {
            
            chon = 1;
            bntChapNhan.Enabled = true;
            bntHuy.Enabled = true;

        }
        //Button thoát
        private void bntThoat_Click(object sender, EventArgs e)
        {
            DialogResult = MessageBox.Show("Bạn có muốn thoát không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            if (DialogResult == DialogResult.OK)
            {
                Application.Exit();
            }

        }
        //Button xóa
        private void bntXoa_Click(object sender, EventArgs e)
        {
            DialogResult = MessageBox.Show("Bạn có chắc muốn xóa!", "Thông báo",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
            if (DialogResult == DialogResult.OK)
            {
                ketnoi.openketnoi();
                ketnoi.executeQuery("delete from nhanvien where manv='" + dtgvpb.Rows[dtgvpb.CurrentCell.RowIndex].Cells[0].Value.ToString() + "' ");
                load();
                ketnoi.dongketnoi();
            }
        }
        //Button chấp nhận
        private void bntChapNhan_Click(object sender, EventArgs e)
        {
            if (chon == 1) // gọi Button Thêm-kenhdaihoc.com
            {
                ketnoi.openketnoi();
                ketnoi.executeQuery("insert into nhanvien values('" + tbMaNV.Text + "','" + tbTenNV.Text + "','" + DateTime.Parse(tbNgaySinh.Text) + "','" + int.Parse(tbDT.Text) + "','" + tbMaPB.Text + "')");
                load();
                bntChapNhan.Enabled = true;
                bntHuy.Enabled = true;
            }
            else if (chon == 2)// gọi Button Sửa -kenhdaihoc.com
            {
                ketnoi.openketnoi();
                ketnoi.executeQuery("update nhanvien set manv='"+tbMaNV.Text+"',tennv='" + tbTenNV.Text + "',ngaysinh='" + DateTime.Parse(tbNgaySinh.Text) + "',sodt='" + int.Parse(tbDT.Text) + "',mapb='" + tbMaPB.Text + "' where manv='"+dtgvpb.Rows[dtgvpb.CurrentCell.RowIndex].Cells[0].Value.ToString()+"'");
                load();
                bntChapNhan.Enabled = true;
                bntHuy.Enabled = true;
            }
            else
            {
                chon = 0;
            }
            
        }
        //Button Hủy - kenhdaihoc.com
        private void bntHuy_Click(object sender, EventArgs e)
        {
            chon = 0;
        }

    }
}

[/CODE]

DEMO chương trình
Download code+data

http://upfile.vn/19qz
Hoặc
http://www.mediafire.com/?ho02xoa6sghs9d3
wWw.kenhdaihoc.com

Monday, September 24, 2012

C# - Kết nối cơ sở dữ liệu trong SQL


C# - Kết nối cơ sở dữ liệu trong SQL

Tác giả: Trịnh Anh Hữu
Mọi đóng góp ý kiến hay thắc mắc gì các bạn vui lòng comment tại
http://kenhdaihoc.com/forum/threads/9523-C-Ket-noi-co-so-du-lieu-trong-SQL.kdh


Wednesday, August 15, 2012

Giáo trình Lập trình Windows - C#


MỤC LỤC

Trích: Box CNTT - Diễn đàn đại học
Chương 1. Cơ bản ngôn ngữ C# ............................................................................................ 1
I. Giới thiệu ngôn ngữ C# 2008 ...................................................................................... 1
II. Môi trường lập trình..................................................................................................... 2
III. Biến, hằng, toán tử ....................................................................................................... 3
IV. Quy ước lập trình, ứng dụng Console Application trong Visual Studio 2008............. 5
V. Kiểu dữ liệu ................................................................................................................. 9
VI. Cấu trúc điều khiển .................................................................................................... 10
VII. Cấu trúc lặp ................................................................................................................ 12
Chương 2. Xây dựng Windows Forms Application ........................................................... 15
I. Sử dụng Visual Studio 2008 ...................................................................................... 15
II. Các control cơ bản: Label, TextBox, Button, CheckBox, … .................................... 18
III. Menu và ToolBar ....................................................................................................... 30
IV. Common Dialog......................................................................................................... 30
Chương 3. Array – String – Exception ............................................................................... 34
I. Mảng 1 chiều ............................................................................................................. 34
II. Mảng nhiều chiều....................................................................................................... 37
III. String.......................................................................................................................... 40
IV. Exception ................................................................................................................... 45
Chương 4. Class – Object - Method .................................................................................... 47
I. Khái niệm................................................................................................................... 47
II. Định nghĩa lớp (Class) ............................................................................................... 47
III. Phương thức (Method) ............................................................................................... 50
Chương 5. SQL Server 2008 ................................................................................................ 54
I. Tổng quan về SQL ..................................................................................................... 54
II. Tổng quan về CSDL quan hệ..................................................................................... 55
III. Table (Bảng) .............................................................................................................. 58
IV. Câu lệnh truy vấn ....................................................................................................... 66
V. Một số hàm thường dùng trong SQL Server ............................................................. 70
Chương 6. Lập trình kết nối CSDL SQL Server ............................................................... 72
I. Tạo kết nối – Vận chuyển dữ liệu. ............................................................................ 72
II. Sử dụng control.......................................................................................................... 73
III. Các thao tác trên dữ liệu: Thêm - Sửa - Xóa với ADO.NET..................................... 78
Chương 7. Xây dựng ứng dụng............................................................................................ 85
I. Chuẩn bị. .................................................................................................................... 85
II. Sử dụng control.......................................................................................................... 85
III. Sử dụng database ....................................................................................................... 88

Download => http://www.mediafire.com/?bwzdj8ziyiv8bpt

Wednesday, August 1, 2012

LinkLabel trong C#


A LinkLabel control is a label control that can display a hyperlink. A LinkLabel control is inherited from the Label class so it has all the functionality provided by the Windows Forms Label control. LinkLabel control does not participate in user input or capture mouse or keyboard events. 

In this article, I will discuss how to create a LinkLabel control in Windows Forms at design-time as well as run-time. After that, I will continue discussing various properties and methods available for the LinkLabel control. 

In Visual Studio 2010, the ToolStripLabel control is recommended for a LinkLabel control.
Creating a LinkLabel
There are two ways to create a control.
Design-time
First, we can use the Form designer of Visual Studio to create a control at design-time. In design-time mode, we can use visual user interfaces to create a control properties and write methods.
To create a LinkLabel control at design-time, you simply drag and drop a LinkLabel control from Toolbox to a Form. After you drag and drop a LinkLabel on a Form. The LinkLabel looks like Figure 1. Once a LinkLabel is on the Form, you can move it around and resize it using mouse and set its properties and events.
LinkLabelImg1.jpg
Figure 1
Run-time
LinkLabel class represents a hyperlink Label control. We simply create an instance of LinkLabel class, set its properties and add this it to the Form controls.
In the first step, we create an instance of the LinkLabel class. The following code snippet creates a LinkLabel control object.
LinkLabel dynamicLinkLabel = new LinkLabel();

In the next step, we set properties of a LinkLabel control. The following code snippet sets background color, foreground color, Text, Name, and Font properties of a LinkLabel.
// Set background and foreground
dynamicLinkLabel.BackColor = Color.Red;
dynamicLinkLabel.ForeColor = Color.Blue;
         
dynamicLinkLabel.Text = "I am a Dynamic LinkLabel";
dynamicLinkLabel.Name = "DynamicLinkLabel";
dynamicLinkLabel.Font = new Font("Georgia", 16);

In the last step, we need to add a LinkLabel control to the Form by calling Form.Controls.Add method. The following code snippet adds a LinkLabel control to a Form.

Controls.Add(dynamicLinkLabel);  
Setting LinkLabel Properties
After you place a LinkLabel control on a Form, the next step is to set properties.
The easiest way to set properties is from the Properties Window. You can open Properties window by pressing F4 or right click on a control and select Properties menu item. The Properties window looks like Figure 2.
LinkLabelImg2.jpg
Figure 2
Name 
Name property represents a unique name of a LinkLabel control. It is used to access the control in the code. The following code snippet sets and gets the name and text of a LinkLabel control.
dynamicLinkLabel.Name = "DynamicLinkLabel";
string name = dynamicLinkLabel.Name;
Location, Height, Width, and Size 

The Location property takes a Point that specifies the starting position of the LinkLabel on a Form. The Size property specifies the size of the control. We can also use Width and Height property instead of Size property. The following code snippet sets Location, Width, and Height properties of a LinkLabel control.
dynamicLinkLabel.Location = new Point(20, 150);
dynamicLinkLabel.Height = 40;
dynamicLinkLabel.Width = 300;
Background, Foreground, BorderStyle
BackColor and ForeColor properties are used to set background and foreground color of a LinkLabel respectively. If you click on these properties in Properties window, the Color Dialog pops up.
Alternatively, you can set background and foreground colors at run-time. The following code snippet sets BackColor and ForeColor properties.
dynamicLinkLabel.BackColor = Color.Red;
dynamicLinkLabel.ForeColor = Color.Blue;
You can also set borders style of a LinkLabel by using the BorderStyle property. The BorderStyle property is represented by a BorderStyle enumeration that has three values – FixedSingle, Fixed3D, and None.  The default value of border style is Fixed3D. The following code snippet sets the border style of a LinkLabel to FixedSingle.
dynamicLinkLabel.BorderStyle = BorderStyle.FixedSingle;
Font 

Font property represents the font of text of a LinkLabel control. If you click on the Font property in Properties window, you will see Font name, size and other font options. The following code snippet sets Font property at run-time.
dynamicLinkLabel.Font = new Font("Georgia", 16);
Text and TextAlign, and TextLength 
Text property of a LinkLabel represents the current text of a LinkLabel control. The TextAlign property represents text alignment that can be Left, Center, or Right. The TextLength property returns the length of a LinkLabel contents.
The following code snippet sets the Text and TextAlign properties and gets the size of a LinkLabel control.
dynamicLinkLabel.Text = "I am Dynamic LinkLabel";
dynamicLinkLabel.TextAlign  HorizontalAlignment.Center;
int size = dynamicLinkLabel.TextLength;
Append Text 

We can append text to a LinkLabel by simply setting Text property to current text plus new text you would want to append something like this.
dynamicLinkLabel.Text += " Appended text";
AutoEllipsis
An ellipsis character (...) is used to give an impression that a control has more characters but it could not fit in the current width of the control. If AutoEllipsis property is true, it adds ellipsis character to a control if text in control does not fit. You may have to set AutoSize to false to see the ellipses character.
Image in LinkLabel 

The Image property of a
 LinkLabel control is used to set a LinkLabel background as an image. The Image property needs an Image object. The Image class has a static method called FromFile that takes an image file name with full path and creates an Image object.
You can also align image and text. The ImageAlign and TextAlign properties of Button are used for this purpose.
The following C# code snippet sets an image as a LinkLabel background. 
dynamicLinkLabel.Image = Image.FromFile(@"C:\Images\Dock.jpg"); dynamicLinkLabel.ImageAlign = ContentAlignment.MiddleRight;dynamicLinkLabel.TextAlign = ContentAlignment.MiddleLeft; dynamicLinkLabel.FlatStyle = FlatStyle.Flat;
Hyperlink Properties 

Here are the hyperlink related properties available in the LinkLabel control.
Links and LinkArea 

A LinkLabel control can display more than one hyperlink. The Links property a type of LinkCollection represents all the hyperlinks available in a LinkLabel control. The Add method of LinkColleciton is used to add a link to the collection. The Remove and RemoveAt methods are used to remove a link from the LinkCollection. The Clear method is used to remove all links from a LinkCollection.
LinkArea property represents the range of text that is treated as a part of the link. It takes a starting position and length of the text.
The following code snippet ads a link and sets LinkArea and a link click event handler.
dynamicLinkLabel.LinkArea = new LinkArea(0, 22);
dynamicLinkLabel.Links.Add(24, 9, "http://www.c-sharpcorner.com");
dynamicLinkLabel.LinkClicked += new LinkLabelLinkClickedEventHandler(LinkedLabelClicked);
Here is the code for the LinkLabel click event handler and uses Process.Start method to open a hyperlink in a browser.
private void LinkedLabelClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    dynamicLinkLabel.LinkVisited = true;
    System.Diagnostics.Process.Start("http://www.c-sharpcorner.com");    
}
LinkColor, VisitedLinkColor, ActiveLinkColor and DisabledLinkColor 

LinkColor, VisitedLinkColor, ActiveLinkColor and DisabledLinkColor properties represent colors when a hyperlink is in normal, visited, active, or disabled mode. The following code snippet sets these colors.
dynamicLinkLabel.ActiveLinkColor = Color.Orange;
dynamicLinkLabel.VisitedLinkColor = Color.Green;
dynamicLinkLabel.LinkColor = Color.RoyalBlue;
dynamicLinkLabel.DisabledLinkColor = Color.Gray;

Summary 

A LinkLabel control is used to display a hyperlink and can be used to click the hyperlink to open a URL.. In this article, we discussed discuss how to create a LinkLabel control in Windows Forms at design-time as well as run-time. After that, we saw how to use various properties and methods.