Welcome Guest [Log In] [Register]
Chào mừng bạn đến với
»»--(¯`°Diễn Đàn 51cth°´¯)--»»
-‘๑’- Bạn hiện đang xem diễn đàn của chúng tôi với tư cách là Khách.Điều này có nghĩa là bạn có giới hạn đối với một số lĩnh vực của hội đồng quản trị không có nhiều quyền lợi khi tham gia cộng đồng.
Đăng Ký rất đơn giản, nhanh chóng, và hoàn toàn miễn phí. Nhấp chuột vào đây để Posted Image
Nếu quên mật khẩu bạn click vào Đây, mật khẩu sẽ gửi vào email của bạn
Sử dụng firefox để đăng nhập CTH-CLUB dễ dàng hơn !
Nếu đã có tài khoản hãy đăng nhâp dưới đây :


Username:   Password:
Add Reply
Hướng dẫn chi tiết làm bài tập chuyên đề 2 thành công 100%
Topic Started: Apr 14 2012, 11:35 PM (950 Views)
Posted Image trionpro
Member Avatar


mình tranh thủ làm tài liệu hướng dẫn các bạn làm 2 bảng này mình nghĩ cũng cần thiết cho các bạn nào chưa biết làm còn bạn nào làm dc rồi thì cũng đừng ném gạch mình /gach/ hiihi thanks
dưới đây là demo các bạn tai file đính kèm về làm chi tiết:
mình đã update tai liệu các bạn tải bản mới nhất theo link sau:
http://www.4shared.com/rar/jWBDAjvc/chuyen_de_2.html
nếu ai lười nữa pm yahoo mình sẽ gửi trực tiếp:

/hanghieu/
Code:
 


Đầu tiên là CSDL: mình thiết kế 2 bảng là Loại Hoa và Hoa
Trong đó Loại hoa gồm:
MaLoaiHoa nvarchar(50)
TenLoaiHoa nvarchar(100)
Bảng Hoa gồm:
MaHoa nvarchar(50)
TenHoa nvarchar(100)
NgayPhatHien datetime
AnhMH varbinary(MAX) được phép null
NoiTimThay nvarchar(100)
MaLoaiHoa nvarchar(50)
Sau khi thiết kế bản các bạn vào Diagrams kết nối 2 bảng nó với nhau:


Sau khi kết nối Diagram xong các bạn tạo Procedures

Đây là thủ tục thêm loại hoa
CREATE PROCEDURE LoaiHoa_Them
@MaLoaiHoa nvarchar(50),
@TenLoaiHoanvarchar(100)
AS
BEGIN
insert into LoaiHoa (MaLoaiHoa,TenLoaiHoa)
VALUES (@MaLoaiHoa,@TenLoaiHoa)
end

đây là thủ tục sửa moại hoa
CREATE PROCEDURE LoaiHoa_Sua
@MaLoaiHoa nvarchar(50),
@TenLoaiHoanvarchar(100)
AS
BEGIN
update LoaiHoa set TenLoaiHoa=@TenLoaiHoa
where MaLoaiHoa=@MaLoaiHoa
end

đây là thủ tục xóa một loại hoa
CREATE PROCEDURE LoaiHoa_Xoa
@MaLoaiHoa nvarchar(50)
AS
BEGIN
delete from LoaiHoa
where MaLoaiHoa=@MaLoaiHoa
end


đây là thủ tục hiển thị danh sách loại hoa
CREATE PROCEDURE LoaiHoa_DS

AS
BEGIN
select * from LoaiHoa
end


đây là thủ tục thêm hoa
CREATE PROCEDURE Hoa_Them
@MaHoa nvarchar(50),
@TenHoa nvarchar(100),
@NgayPhatHien datetime,
@AnhMH varbinary(max),
@NoiTimThay nvarchar(100),
@MaLoaiHoa nvarchar(50)
AS
BEGIN
insert into Hoa (MaHoa,TenHoa,NgayPhatHien,AnhMH,NoiTimThay,MaLoaiHoa)
VALUES (@MaHoa,@TenHoa,@NgayPhatHien,@AnhMH,@NoiTimThay,@MaLoaiHoa)

end


CREATE PROCEDURE Hoa_Sua
@MaHoa nvarchar(50),
@TenHoa nvarchar(100),
@NgayPhatHien datetime,
@AnhMH varbinary(max),
@NoiTimThay nvarchar(100),
@MaLoaiHoa nvarchar(50)
AS
BEGIN
update Hoa set
TenHoa=@TenHoa,
NgayPhatHien=@NgayPhatHien,
AnhMH=@AnhMH,
NoiTimThay=@NoiTimThay,
MaLoaiHoa=@MaLoaiHoa
where MaHoa=@MaHoa
end

CREATE PROCEDURE Hoa_Xoa
@MaHoa nvarchar(50)

AS
BEGIN
delete from Hoa
where MaHoa=@MaHoa

end



CREATE PROCEDURE Hoa_DS

AS
BEGIN
select * from Hoa
end


Vậy là xong CSDL chung ta qua phần làm form:

Đâu tiên: tạo 1 bài mới.
Sau đó chuột phải vào cây gốc: ở đây của mình là QuanLyBanHoa các bạn chọn Properties
Rồi chọn Settings
Thêm vào như sau:
Names : BHConString cái này các bạn có thể đặt tên tùy ý ở đây mình làm giống của thầy.
Type: Chọn Connettion String
Scope: Application
Value: server=.\sQLEXPRESS;database=QuanLyHoa;user id=sa;password=123
Server là tùy sql của các bạn nhé
Còn mấy cái sau thì đơn giản rồi minh không nêu ra nữa:

Xong bước kết nối bây giờ mình qua phần file Program;
Các bạn go vào như sau:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Data; //cái này thêm vào
using System.Data.SqlClient; //cái này thêm vào

namespace QuanLyHoa
{
static class Program
{
public static string BHConString;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
BHConString = QuanLyHoa.Properties.Settings.Default.BHConString;

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public static SqlDataReader ExecuteDataReader(SqlCommand cmd)
{
SqlConnection cn = new SqlConnection(BHConString);
cn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = cn;
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;

}
public static void ExcuteStoredProc(SqlCommand cmd)
{
SqlConnection cn = new SqlConnection(BHConString);
cn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = cn;
cmd.ExecuteNonQuery();

cn.Close();

}
public static byte[] DBValueToByteArray(object o)
{
if (o == DBNull.Value)
return null;
else
return (byte[])o;
}

public static object ByteDBArrayToDBValue(byte[] v)
{
if (v == null)
return DBNull.Value;
else
return v;
}

}
}


Xong file program các bạn tiếp đến tạo một foder Business
Trong forder này bạn tạo 2 file LoaiHoa.cs và Hoa.cs
Trong file LoaiHoa.cs bạn code như sau:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace QuanLyHoa.Business
{
public class LoaiHoa
{
public string MaLoaiHoa { get; set; }
public string TenLoaiHoa { get; set; }

public static List<LoaiHoa> SelectAll()
{
List<LoaiHoa> lisLoaiHoa = new List<LoaiHoa>();
SqlCommand cmd = new SqlCommand("LoaiHoa_DS");
SqlDataReader dr = Program.ExecuteDataReader(cmd);
while (dr.Read())
{
LoaiHoa lh = new LoaiHoa();
lh.MaLoaiHoa = (string)dr["MaLoaiHoa"];
lh.TenLoaiHoa = (string)dr["TenLoaiHoa"];
lisLoaiHoa.Add(lh);
}
dr.Close();
return lisLoaiHoa;
}
private static void AddParameters(SqlCommand cmd, LoaiHoa lh)
{
cmd.Parameters.AddWithValue("@MaLoaiHoa", lh.MaLoaiHoa);
cmd.Parameters.AddWithValue("@TenLoaiHoa", lh.TenLoaiHoa);
}

public static void InsertDatabase(LoaiHoa lh)
{
SqlCommand cmd = new SqlCommand("LoaiHoa_Them");
AddParameters(cmd, lh);
Program.ExcuteStoredProc(cmd);
}
public static void UpdateDatabase(LoaiHoa lh)
{
SqlCommand cmd = new SqlCommand("LoaiHoa_Sua");
AddParameters(cmd, lh);
Program.ExcuteStoredProc(cmd);
}
public static void DeleteDatabase(LoaiHoa lh)
{
SqlCommand cmd = new SqlCommand("LoaiHoa_Xoa");
cmd.Parameters.AddWithValue("@MaLoaiHoa", lh.MaLoaiHoa);
Program.ExcuteStoredProc(cmd);
}


}
}



File Hoa.cs các bạn code như sau:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace QuanLyHoa.Business
{
class Hoa
{
public string MaHoa{get;set;}
public string TenHoa { get; set; }
public DateTime NgayPhatHien { get; set; }
public byte[] AnhMH { get; set; }
public string NoiTimThay { get; set; }
public string MaLoaiHoa { get; set; }

public static List<Hoa> SelectAll()
{
List<Hoa> lisHoa = new List<Hoa>();

SqlCommand cmd = new SqlCommand("Hoa_DS");
SqlDataReader dr = Program.ExecuteDataReader(cmd);
while (dr.Read())
{
Hoa h = new Hoa();
h.MaHoa = (string)dr["MaHoa"];
h.TenHoa = (string)dr["TenHoa"];
h.NgayPhatHien = (DateTime)dr["NgayPhatHien"];
h.AnhMH = Program.DBValueToByteArray(dr["AnhMH"]);
h.NoiTimThay = (string)dr["NoiTimThay"];
h.MaLoaiHoa = (string)dr["MaLoaiHoa"];
lisHoa.Add(h);
}
dr.Close();
return lisHoa;


}
private static void AddParameters(SqlCommand cmd, Hoa h)
{
cmd.Parameters.AddWithValue("@MaHoa", h.MaHoa);
cmd.Parameters.AddWithValue("@TenHoa", h.TenHoa);
cmd.Parameters.AddWithValue("@NgayPhatHien", h.NgayPhatHien);
cmd.Parameters.Add("@AnhMH", SqlDbType.VarBinary).Value = Program.ByteDBArrayToDBValue(h.AnhMH);
cmd.Parameters.AddWithValue("@NoiTimThay", h.NoiTimThay);
cmd.Parameters.AddWithValue("@MaLoaiHoa", h.MaLoaiHoa);
}
public static void InsertDatabase(Hoa h)
{
SqlCommand cmd = new SqlCommand("Hoa_Them");
AddParameters(cmd, h);
Program.ExcuteStoredProc(cmd);
}
public static void UpdateDatabase(Hoa h)
{
SqlCommand cmd = new SqlCommand("Hoa_Sua");
AddParameters(cmd, h);
Program.ExcuteStoredProc(cmd);
}

public static void DeleteDatabase(Hoa h)
{
SqlCommand cmd = new SqlCommand("Hoa_Xoa");
cmd.Parameters.AddWithValue("@MaHoa", h.MaHoa);
Program.ExcuteStoredProc(cmd);
}
}
}



Sau khi xong các file trong forder Business các bạn tiếp tục thiết kế các form như sau:
Form FDMLoaiHoa:


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;
using QuanLyHoa.Business;

namespace QuanLyHoa
{
public partial class FDMLoaiHoa : Form
{
public FDMLoaiHoa()
{
InitializeComponent();
}
List<LoaiHoa> listLoaiHoa;
private void FDMLoaiHoa_Load(object sender, EventArgs e)
{
listLoaiHoa = LoaiHoa.SelectAll();
bsLoaiHoa.DataSource = listLoaiHoa;

}

private void btnThem_Click(object sender, EventArgs e)
{
FLoaiHoa f = new FLoaiHoa(bsLoaiHoa, true);
f.ShowDialog();
}

private void btnXoa_Click(object sender, EventArgs e)
{
LoaiHoa n = bsLoaiHoa.Current as LoaiHoa;
DialogResult r = MessageBox.Show("Ban Co muong xoa hay khong ?", "Xoa", MessageBoxButtons.OKCancel);
if (r == System.Windows.Forms.DialogResult.OK)
{
LoaiHoa.DeleteDatabase(n);
bsLoaiHoa.RemoveCurrent();
}
}

private void btnSua_Click(object sender, EventArgs e)
{
FLoaiHoa f = new FLoaiHoa(bsLoaiHoa, false);

if (f.ShowDialog() == DialogResult.OK)
bsLoaiHoa.ResetCurrentItem();

}
}
}


Sau đó đến form FLoaiHoa

Code như sau:
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;
using QuanLyHoa.Business;

namespace QuanLyHoa
{
public partial class FLoaiHoa : Form
{
BindingSource bsLoaiHoa;
bool AddNew;

public FLoaiHoa(BindingSource bsLoaiHoa, bool AddNew)
{
InitializeComponent();
this.bsLoaiHoa = bsLoaiHoa;
this.AddNew = AddNew;
if (AddNew == false)
{
LoaiHoa l = bsLoaiHoa.Current as LoaiHoa;
txtMaLoaiHoa.Text = l.MaLoaiHoa;
txtTenLoaiHoa.Text = l.TenLoaiHoa;
txtMaLoaiHoa.ReadOnly = true;

}
}

private void btnOK_Click(object sender, EventArgs e)
{
LoaiHoa lh;
if (AddNew)
lh = new LoaiHoa();
else
lh = bsLoaiHoa.Current as LoaiHoa;
lh.MaLoaiHoa = txtMaLoaiHoa.Text;
lh.TenLoaiHoa = txtTenLoaiHoa.Text;
if (AddNew)
{
LoaiHoa.InsertDatabase(lh);
bsLoaiHoa.Add(lh);
txtMaLoaiHoa.Text = "";
txtTenLoaiHoa.Text = "";

txtMaLoaiHoa.Focus();

}
else
{
LoaiHoa.UpdateDatabase(lh);
DialogResult = DialogResult.OK;
}
}

private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}

private void FLoaiHoa_Load(object sender, EventArgs e)
{

}
}
}


Tiếp theo bạn làm cho form FDMHoa

Chức năng cải tiến ccacs bạn làm như sau:
Bạn edit colum trong griview

Name đổi thành cobloaiHoa
columType đổi thành DataGridviewComboBox…….

code như sau:
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;
using QuanLyHoa.Business;

namespace QuanLyHoa
{
public partial class FDMHoa : Form
{
public FDMHoa()
{
InitializeComponent();
}
List<Hoa> lisHoa;
List<LoaiHoa> lisLoaiHoa;
private void FDMHoa_Load(object sender, EventArgs e)
{
lisHoa = Hoa.SelectAll();
bsHoa.DataSource = lisHoa;
lisLoaiHoa = LoaiHoa.SelectAll();
cobLoaiHoa.DataSource = lisLoaiHoa;
cobLoaiHoa.DisplayMember = "TenLoaiHoa";
cobLoaiHoa.ValueMember = "MaloaiHoa";
}

private void txtTimKiem_TextChanged(object sender, EventArgs e)
{
List<Hoa> ls = lisHoa.FindAll(h => h.TenHoa.Contains(txtTimKiem.Text));
bsHoa.DataSource = ls;
}

private void btnThem_Click(object sender, EventArgs e)
{
FHoa f = new FHoa(bsHoa, true);
f.ShowDialog();
}

private void btnSua_Click(object sender, EventArgs e)
{
FHoa f = new FHoa(bsHoa, false);
if (f.ShowDialog() == DialogResult.OK)
bsHoa.ResetCurrentItem();
}

private void btnXoa_Click(object sender, EventArgs e)
{
Hoa n = bsHoa.Current as Hoa;
DialogResult r = MessageBox.Show("Ban co chac la xoa hay khong?", "xoa", MessageBoxButtons.OKCancel);
if (r == System.Windows.Forms.DialogResult.OK)
{

Hoa.DeleteDatabase(n);
bsHoa.RemoveCurrent();
}
}

}
}



Tiếp tục làm với bảng FHoa

Code như sau:
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;
using QuanLyHoa.Business;
using System.IO;

namespace QuanLyHoa
{
public partial class FHoa : Form
{
BindingSource bsHoa;
bool AddNew;
List<LoaiHoa> lisLoaiHoa;
public FHoa(BindingSource bsHoa, bool AddNew)
{
InitializeComponent();
this.bsHoa = bsHoa;
this.AddNew = AddNew;
lisLoaiHoa = LoaiHoa.SelectAll();
cobLoaiHoa.DataSource = lisLoaiHoa;
cobLoaiHoa.DisplayMember = "TenLoaiHoa";
cobLoaiHoa.ValueMember = "MaLoaiHoa";

if (AddNew == false)
{
Hoa h = bsHoa.Current as Hoa;
txtMaHoa.Text = h.MaHoa.ToString();
txtTenHoa.Text = h.TenHoa;
dtpNgayPhatHien.Value = h.NgayPhatHien;
txtNoiTimThay.Text = h.NoiTimThay;
cobLoaiHoa.SelectedValue = h.MaLoaiHoa;
if (h.AnhMH != null)
{

MemoryStream mem = new MemoryStream(h.AnhMH);
picAnhMH.Image = Image.FromStream(mem);

}
else

picAnhMH.Image = null;
txtMaHoa.ReadOnly = true;

}

}

private void btnOK_Click(object sender, EventArgs e)
{
Hoa h;
if (AddNew)
h = new Hoa();
else
h = bsHoa.Current as Hoa;

h.MaHoa = txtMaHoa.Text;
h.TenHoa = txtTenHoa.Text;
h.NgayPhatHien = dtpNgayPhatHien.Value;
h.NoiTimThay = txtNoiTimThay.Text;
h.MaLoaiHoa = cobLoaiHoa.SelectedValue.ToString() ;

if (picAnhMH.Image != null)
{

MemoryStream mem = new MemoryStream();
picAnhMH.Image.Save(mem, System.Drawing.Imaging.ImageFormat.Jpeg);
h.AnhMH = mem.ToArray();
}
if (AddNew)
{

Hoa.InsertDatabase(h);
bsHoa.Add(h);

txtTenHoa.Text = "";
txtNoiTimThay.Text = "";
txtMaHoa.Focus();

}
else
{
Hoa.UpdateDatabase(h);
DialogResult = DialogResult.OK;

}
}

private void btnTaiHinh_Click(object sender, EventArgs e)
{
OpenFileDialog f = new OpenFileDialog();
f.Filter = "JPEG Image file(*.jpg)|*.jpg|PNG Image file (*.png) |*.pmg";
if (f.ShowDialog() == DialogResult.OK)
picAnhMH.Image = Image.FromFile(f.FileName);
}

private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
}
}



Sau đó bạn là cái form1 là cái form mới đầu tạo bài mới nó cho:
Bạn thiết kế thế nào cung dc mình dung 2 nút cho đơn giản
Các bạn cũng có thể làm menu như trong sách của thầy ^^

Code như sau:’ 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 QuanLyHoa
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnLoaiHoa_Click(object sender, EventArgs e)
{
var f = new FDMLoaiHoa();
f.ShowDialog();
}

private void btnHoa_Click(object sender, EventArgs e)
{
var f = new FDMHoa();
f.ShowDialog();
}
}
}









Attached to this post:
Attachments: chuyen_de_2.doc (176.5 KB)
Edited by trionpro, Apr 15 2012, 04:25 PM.
.•´¨ `*:•.::.(¯`°•.¸¤TRIONPRO¤¸.•°´¯ ).::.•´¨`.
[you] hãy cùng Posted Image trionpro đóng góp cho CTH-CLUB nhé!
Posted Image
Posted Image
Offline Profile Quote Post Goto Top
 
Posted Image trionpro
Member Avatar


anh em nào làm mà chưa dc thì teamview với mình nhé yahoo: trionmatna_bmt :dotay:
.•´¨ `*:•.::.(¯`°•.¸¤TRIONPRO¤¸.•°´¯ ).::.•´¨`.
[you] hãy cùng Posted Image trionpro đóng góp cho CTH-CLUB nhé!
Posted Image
Posted Image
Offline Profile Quote Post Goto Top
 
Posted Imageloveball91
No Avatar


tk trước cái nha!
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
ZetaBoards - Free Forum Hosting
Join the millions that use us for their forum communities. Create your own forum today.
« Previous Topic · Lập Trình CSDL với C# · Next Topic »
Add Reply

Liên hệ quảng cáo: Y!M:

Liên kết test link
Đạị Học Nha Trang | Lớp 52TH | Câu lạc bộ thuật toán - Đại học Nha Trang | Diễn Đàn Teen V4

Xây dựng bởi "Cộng đồng tin học CTH" , dựa trên mã nguồn mở Zetaboards.
Xem tốt nhất trên các trình duyệt: Oprera, Mozilla Firefox, Google Chrome ở độ phân giải 1024 x 768 pixels.
Diễn đàn là một hệ thống mở, chúng tôi sẽ không chịu trách nhiệm về nội dung đăng tải do người dùng đưa lên.