Trang chủ

tự học winform c# qua ví dụ -ADO.NET – dataReader – currentManager – tìm kiếm

Trang chủGiáo dục | April 5, 2014

Hướng dẫn sử dụng ADO.NET - dataReader - currentManager trong winform c#

Hướng dẫn sử dụng ADO.NET - dataReader - currentManager trong winform c#

 

 

I.        Đối tượng DataReader

 

  1. 1.   Giới thiệu

 

DataReader chỉ là một đối tượng con trỏ để trỏ đến một dòng dữ liệu trong data source thông qua câu lệnh Command giống như một Recordset trong ADO nhưng với tham số chỉ có đọc (read-only) và chỉ di chuyển con trỏ về phía trước mà thôi (forward-only) nên ta chỉ dùng 1 phương thức để di chuyển con trỏ tới vị trí khác là DataReader.Read().

 

 

  1. 2.   Cách tạo

DataReader chỉ là một đối tượng con trỏ nên ta không thấy nó ở trên hộp công cụ toolbox. Điều này có nghĩa là ta phải tạo nó bằng code.

 

private System.Data.SqlClient.SqlDataReader rdrNhanVien;

 

 

Bài 1.

Xây dựng ứng dụng Quản lý sách có giao diện như sau:

 

 

9

 

 

999

 

nh 1. ng dng Qun lý sách.

 

Ứng dụng cho phép xem thông tinh của sách khi người dùng nhập mã sản phẩm và nhấn button Xem thông tin

 

Yêu cầu:

 

  1. Sử dụng SqlDataReader để đọc dữ liệu từ CSDL

 

  1. Sinh viên sử dụng file app.config để lưu chuỗi kêt nối

 

Thông tin về sách được lưu trong file ProductDB.sql đi kèm bài lab này

 

(Sinh viên có thể Tham khảo ứng dụng Customer Maintenance để xây dựng ứng dụng theo mô hình 3 tầng)

 

(Sinh viên lưu kết quả vào thư mục Bai 1)

 

 1. database

 

use master

go

drop database sachdb

go

 

CREATE DATABASE SachDB

go

use SachDB

go

create table categories

(

categoryid int identity(1,1) primary key,

categoryname varchar(50)

)

go

 

insert into categories(categoryname) values (‘Sách .net’)

go

insert into categories(categoryname) values (‘Sách java’)

go

CREATE TABLE [dbo].[Products](

[ProductCode] [char](10) NOT NULL PRIMARY KEY,

[Description] [varchar](50) NOT NULL,

[UnitPrice] [money] NOT NULL,

[OnHandQuantity] [int] NOT NULL,

categoryid int

constraint fk_c_p foreign key(categoryid) references categories(categoryid)

)

GO

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity],categoryid) VALUES (N’A3CS      ‘, N’Murach”s ASP.NET 3.5 Web Programming with C# 2008’, 54.5000, 4637,1)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity],categoryid) VALUES (N’A3VB      ‘, N’Murach”s ASP.NET 3.5 Web Programming with VB 2008’, 54.5000, 3974,1)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity],categoryid) VALUES (N’ADC3      ‘, N’Murach”s ADO.NET 3.5, LINQ, and EF with C# 2008’, 54.5000, 5244,2)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity],categoryid) VALUES (N’ADV3      ‘, N’Murach”s ADO.NET 3.5, LINQ, and EF with VB 2008’, 54.5000, 4538,2)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’CRFC      ‘, N’Murach”s CICS Desk Reference’, 50.0000, 1865)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’CSH8      ‘, N’Murach”s C# 2008’, 54.5000, 5136)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’DB1R      ‘, N’DB2 for the COBOL Programmer, Part 1 (2nd Edition)’, 42.0000, 4825)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’DB2R      ‘, N’DB2 for the COBOL Programmer, Part 2 (2nd Edition)’, 45.0000, 621)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’JSE6      ‘, N’Murach”s JAVA SE 6’, 52.5000, 3455)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’JSP2      ‘, N’Murach”s JAVA Servlets and JSP (2nd Edition)’, 52.5000, 4999)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’MCBL      ‘, N’Murach”s Structured COBOL’, 62.5000, 2386)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’MCCP      ‘, N’Murach”s CICS for the COBOL Programmer’, 54.0000, 2368)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’MDOM      ‘, N’Murach”s JavaScript and DOM Scripting’, 54.5000, 6937)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’SQL8      ‘, N’Murach”s SQL Server 2008’, 52.5000, 2465)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’VB08      ‘, N’Murach”s Visual Basic 2008’, 54.5000, 2193)

INSERT [dbo].[Products] ([ProductCode], [Description], [UnitPrice], [OnHandQuantity]) VALUES (N’ZJLR      ‘, N’Murach”s OS/390 and z/os JCL’, 62.5000, 677)

go

select * from categories

go

select * from products

go

 

2. file  app.config

 

<?xml version=”1.0″ encoding=”utf-8″ ?>

<configuration>

<connectionStrings>

<add name=”strcon”           connectionString=”server=.;database=sachDB;integrated security=true;”           providerName=”System.Data.SqlClient” />

</connectionStrings>

</configuration>

 

3. coding

 

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string strcon = System.Configuration.ConfigurationManager.ConnectionStrings[“strcon”].ToString();
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand(“select * from products where productcode = ‘”+textBox1.Text+”‘”,con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())
{
textBox2.Text = dr[“Description”].ToString();
textBox3.Text = dr[“unitprice”].ToString();
textBox4.Text = dr[“OnHandQuantity”].ToString();

}
dr.Close();
con.Close();
}
}

 

 

 

 

 

 

 

Bài 2

Lập trình xây dựng phần mềm  Qun lý thông tin sách theo cách lập trình hướng kết nối

 

55

 

 

999

 

 

nh 2. ng dng Qun lý thông tin sách.

 

Ứng dụng gồm các chức năng sau:

 

  1. Chức năng Thao tác với dữ liệu

 

  1. Khi nhấn nút “Thêm Mới” cho phép thêm 1 bản ghi vào bảng dữ liệu.

 

  1. Khi nhấn nút “Xóa” sẽ xóa 1 bản ghi từ bảng dữ liệu.

 

  1. Khi nhấn nút “Sửa” thì bản ghi sẽ được cập nhật.

 

  1. Khi nhấn nút “Lưu” thì chức năng thêm mới và sửa được hoàn thành.

 

  1. Chức năng điều hướng

 

  1. Khi button >> được nhấn: Các TextBox hiển thị bản ghi cuối cùng và bản ghi cuối cùng trên DataGridView được chọn

 

  1. Khi button << được nhấn: Các TextBox hiển thị bản ghi đầu tiên và bản ghi đầu tiên trên DataGridView được chọn

 

 

  1. Khi button > được nhấn: Các TextBox hiển thị bản ghi tiếp theo và bản ghi tiếp theo trên DataGridView được chọn

 

  1. Khi button < được nhấn: Các TextBox hiển thị bản ghi trước đó và bản ghi trước đó trên DataGridView được chọn

 

  1. Tìm theo giá : Hiển thị tất cả các bản ghi có giá lớn hơn giá được nhập vào TextBox Yêu cầu:
    1. Sử dụng BindingSource để gán dữ liệu cho điều khiển, thực hiện các thao như thêm mới, sửa, xóa và điều hướng trên điều khiển dễ dàng hơn

 

  1. Sinh viên sử dụng file app.config để lưu chuỗi kêt nối

 

3. database và app.config như câu 1

 

4. coding

 

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

 

 

 

private void load_data()

{

SqlConnection con = new SqlConnection(“server=.;database=sachdb;integrated security=true;”);

SqlDataAdapter da = new SqlDataAdapter(“select * from products”,con);

DataTable tb = new DataTable();

da.Fill(tb);

dataGridView1.DataSource = tb;

 

//databinding

textBox1.DataBindings.Clear();

textBox2.DataBindings.Clear();

textBox3.DataBindings.Clear();

textBox4.DataBindings.Clear();

 

textBox1.DataBindings.Add(“Text”, dataGridView1.DataSource, “productcode”);

textBox2.DataBindings.Add(“Text”, dataGridView1.DataSource, “Description”);

textBox3.DataBindings.Add(“Text”, dataGridView1.DataSource, “UnitPrice”);

textBox4.DataBindings.Add(“Text”, dataGridView1.DataSource, “OnHandQuantity”);

 

 

}

private void Form1_Load(object sender, EventArgs e)

{

load_data();

textBox1.Enabled = false;

textBox2.Enabled = false;

textBox3.Enabled = false;

textBox4.Enabled = false;

 

button2.Enabled = false;

button3.Enabled = false;

button4.Enabled = false;

}

 

private void button1_Click(object sender, EventArgs e)

{

textBox1.Enabled = true;

 

textBox2.Enabled = true;

textBox3.Enabled = true;

textBox4.Enabled = true;

textBox1.Text = “”;

textBox2.Text = “”;

textBox3.Text = “”;

textBox4.Text = “”;

textBox1.Focus();

 

button1.Enabled = false;

button3.Enabled = false;

button2.Enabled = true;

button4.Enabled = true;

}

 

private void button2_Click(object sender, EventArgs e)

{

SqlConnection con = new SqlConnection(“server=.;database=sachdb;integrated security=true;”);

SqlCommand cmd = new SqlCommand(“insert into products values(‘” + textBox1.Text + “‘,'” + textBox2.Text + “‘,'” + textBox3.Text + “‘,'” + textBox4.Text + “‘)”, con);

con.Open();

cmd.ExecuteNonQuery();

con.Close();

load_data();

}

 

private void button3_Click(object sender, EventArgs e)

{

DialogResult kq = MessageBox.Show(“ban muon xoa khong ?”,”tieu de”,MessageBoxButtons.YesNo);

 

if (kq == System.Windows.Forms.DialogResult.Yes)

{

SqlConnection con = new SqlConnection(“server=.;database=sachdb;integrated security=true;”);

SqlCommand cmd = new SqlCommand(“delete from products where productcode = ‘”+textBox1.Text+”‘”, con);

con.Open();

cmd.ExecuteNonQuery();

con.Close();

load_data();

}

}

 

private void button4_Click(object sender, EventArgs e)

{

 

}

 

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

{

button3.Enabled = true;

button4.Enabled = true;

}

 

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

dataGridView1_CellClick(sender, e);

}

CurrencyManager myCurrencyManager;

private void button5_Click(object sender, EventArgs e)

{

SqlConnection con = new SqlConnection(“server=.;database=sachdb;integrated security=true;”);

SqlDataAdapter da = new SqlDataAdapter(“select * from products where unitprice > ‘”+textBox5.Text+”‘”, con);

DataTable tb = new DataTable();

da.Fill(tb);

dataGridView1.DataSource = tb;

 

//databinding

textBox1.DataBindings.Clear();

textBox2.DataBindings.Clear();

textBox3.DataBindings.Clear();

textBox4.DataBindings.Clear();

 

textBox1.DataBindings.Add(“Text”, dataGridView1.DataSource, “productcode”);

textBox2.DataBindings.Add(“Text”, dataGridView1.DataSource, “Description”);

textBox3.DataBindings.Add(“Text”, dataGridView1.DataSource, “UnitPrice”);

textBox4.DataBindings.Add(“Text”, dataGridView1.DataSource, “OnHandQuantity”);

 

 

myCurrencyManager = (CurrencyManager)this.BindingContext[tb];

 

myCurrencyManager.Position = 0;

button6.Enabled = false;

button7.Enabled = false;

button8.Enabled = true;

button9.Enabled = true;

}

 

private void button6_Click(object sender, EventArgs e)

{

myCurrencyManager.Position = 0;

button6.Enabled = false;

button7.Enabled = false;

button8.Enabled = true;

button9.Enabled = true;

}

 

private void button7_Click(object sender, EventArgs e)

{

myCurrencyManager.Position -= 1;

}

 

private void button8_Click(object sender, EventArgs e)

{

myCurrencyManager.Position += 1;

}

 

private void button9_Click(object sender, EventArgs e)

{

myCurrencyManager.Position = myCurrencyManager.Count – 1;

button6.Enabled = true;

button7.Enabled = true;

button8.Enabled = false;

button9.Enabled = false;

}

 

}

 

 

 

info24h.vn thực hiện

Xem thêm:

Gửi bình luận

Xem thêm

Thời trang

Xem thêm

Công nghệ

Link hữu ích
shop bán váy đầm công chúa đẹp tại TP.HCM

shop bán đầm cho bé gái đẹp tại TP.HCM
shop bán Thời trang trẻ em cao cấp giao hàng toàn quốc
mua mùn cưa giá cao
váy đầm công chúa

váy đầm trẻ em | mua24h.com.vn |

Tuyển chuyên viên thiết kế và may đầm công chúa giỏi :
Cung cấp vải sỉ và lẻ