Tên bài viết: C# và SQL Server 2005
Tác giả: Quang.It / IDE
Cấp độ bài viết: Cơ bản
Tóm tắt: Các thao tác cơ bản C# với SQL Server 2005
Hiện nay, ngoài Access, hệ quản trị cơ sở dữ liệu SQL Server được sử dụng rất phổ biến. Bài này sẽ đề cập đến các thao tác cơ bản giữa C# và SQL Server.
Để sử dụng đươc bài hướng dẫn này các bạn hãy tải file Database backup nằm ở trang đầu tiên này và restore nó vào SQL Server của mình.
Database này có tên là SampleTest bên trong có một Table tên là Danhsach..
Bảng này gồm có năm cột
STT : kiểu int
Name, Address, Phone, Email có kiểu là ntext.
1. Namespace cần thiết :
Để có thể thao tác tốt với SQL Server chúng ta nên sử dụng namespace.
using System.Data;
using System.Data.SqlClient;//Namespace dùng cho SQL
2. Kết nối với SQL Server
Để có thể kết nối chúng ta phải tạo ra chuỗi kết nối Connection String cung cấp cho nó đầy đủ các thành phần sau
SampleTest là cơ sở dữ liệu mẫu được restore lại trong SQL.
Để tạo kết nối chúng ta dùng lớp SqlConnection.
Code hoàn chỉnh tạo kết nối và hủy kết nối;
3.1 Truy xuất dữ liệu bằng SQL trực tiếp có truyền tham số
Dùng SqlCommand để thực thi câu lệnh SQL.
Ở đây ta sẽ dùng SqlDataReader để đọc dữ liệu với tốc độ nhanh.
Ở đây ta sẽ dùng SqlDataAdapter để thực thi command và dữ liệu lấy về sẽ được điền vào Datatable thông qua Fill.
Có nhiệm vụ khi ta clịck vào dòng nào trong DataGridView thì các dữ liệu trên dòng đó sẽ hiển thị trên Textbox.
5.1 Insert dữ liệu vào Table bằng SQL trực tiếp có truyền tham số
5.2 Insert dữ liệu vào Table thông qua Adapter
Để Insert được 1 record mới vào trong table thông qua Adapter thì đầu tiên ta phải Insert thêm 1 dòng mới vào trong Table trước.
Tác giả: Quang.It / IDE
Cấp độ bài viết: Cơ bản
Tóm tắt: Các thao tác cơ bản C# với SQL Server 2005
C# và SQL Server 2005
Hiện nay, ngoài Access, hệ quản trị cơ sở dữ liệu SQL Server được sử dụng rất phổ biến. Bài này sẽ đề cập đến các thao tác cơ bản giữa C# và SQL Server.
Để sử dụng đươc bài hướng dẫn này các bạn hãy tải file Database backup nằm ở trang đầu tiên này và restore nó vào SQL Server của mình.
Database này có tên là SampleTest bên trong có một Table tên là Danhsach..
Bảng này gồm có năm cột
STT : kiểu int
Name, Address, Phone, Email có kiểu là ntext.
1. Namespace cần thiết :
Để có thể thao tác tốt với SQL Server chúng ta nên sử dụng namespace.
using System.Data;
using System.Data.SqlClient;//Namespace dùng cho SQL
2. Kết nối với SQL Server
Để có thể kết nối chúng ta phải tạo ra chuỗi kết nối Connection String cung cấp cho nó đầy đủ các thành phần sau
- Server hay Data Source = tên máy chủ\tên thể hiện của máy chủ SQL
- Database hay Intial Catalog = Tên của Database mà mình định truy xuất trong SQL.
- User id = Tên người sử dụng
- Password = Mật mã bảo vệ
- Integrated Security=SSPI hay true// bảo mật
- Persist Security Info=False // Không trả về thông tin bảo mật
- String varConnect = @"Data Source=servercomputer\sqlexpress;" +
- "database=SampleTest;" +
- "User ID =sa;"+
- "Password =;" +
- "Integrated Security=SSPI;" +
- "Persist Security info =false";
SampleTest là cơ sở dữ liệu mẫu được restore lại trong SQL.
Để tạo kết nối chúng ta dùng lớp SqlConnection.
Code hoàn chỉnh tạo kết nối và hủy kết nối;
- SqlConnection objConnect;
- #region "Tạo kết nối và hủy kết nối"
- /// <summary>
- /// Tạo kết nối
- /// </summary>
- private void subCreateConnect()
- {
- String varConnect = @"Data Source=servercomputer\sqlexpress;" +
- "database=SampleTest;" +
- "User ID =sa;"+
- "Password =;" +
- "Integrated Security=SSPI;" +
- "Persist Security info =false";
- objConnect = new SqlConnection(varConnect);
- objConnect.Open();
- }
- /// <summary>
- /// Hủy kết nối
- /// </summary>
- private void subDestroyConnect()
- {
- objConnect.Close();
- objConnect.Dispose();
- objConnect = null;
- }
- #endregion
3.1 Truy xuất dữ liệu bằng SQL trực tiếp có truyền tham số
Dùng SqlCommand để thực thi câu lệnh SQL.
Ở đây ta sẽ dùng SqlDataReader để đọc dữ liệu với tốc độ nhanh.
- private void subSelectBySQLTruyềnthamsố()
- {
- subCreateConnect();
- //Lệnh cần thúc hiện
- SqlCommand objCommand = new SqlCommand();
- objCommand.Connection = objConnect;
- objCommand.CommandText = "Select * from Danhsach where STT>@STT";
- objCommand.Parameters.Add("@STT", SqlDbType.Int).Value = 3;
- SqlDataReader objReader = objCommand.ExecuteReader();
- DataTable objTable = new DataTable();
- objTable.Load(objReader);
- DGSQL.DataSource = objTable;
- //Hủy đối tượng
- objCommand.Dispose();
- objCommand = null;
- objTable.Dispose();
- objTable = null;
- subDestroyConnect();
- }
Ở đây ta sẽ dùng SqlDataAdapter để thực thi command và dữ liệu lấy về sẽ được điền vào Datatable thông qua Fill.
- private void subSelectBySQLAdapter()
- {
- subCreateConnect();
- //Command
- SqlCommand objCommand = new SqlCommand();
- objCommand.Connection = objConnect;
- objCommand.CommandText = "Select * from Danhsach where STT>@STT";
- objCommand.Parameters.Add("@STT", SqlDbType.Int).Value = 4;
- //SqlAdapter
- SqlDataAdapter objAdapter = new SqlDataAdapter();
- objAdapter.SelectCommand = objCommand;
- DataTable objTable = new DataTable();
- objAdapter.Fill(objTable);
- DGSQL.DataSource = objTable;
- //Hủy đối tượng
- objCommand.Dispose();
- objCommand = null;
- objTable.Dispose();
- objTable = null;
- objAdapter.Dispose();
- objAdapter=null;
- subDestroyConnect();
- }
Có nhiệm vụ khi ta clịck vào dòng nào trong DataGridView thì các dữ liệu trên dòng đó sẽ hiển thị trên Textbox.
- private void subDatabinding()
- {
- txtSTT.DataBindings.Clear();
- txtSTT.DataBindings.Add("Text", DGSQL.DataSource, "STT");
- txtName.DataBindings.Clear();
- txtName.DataBindings.Add("Text", DGSQL.DataSource, "Name");
- txtAddress.DataBindings.Clear();
- txtAddress.DataBindings.Add("Text", DGSQL.DataSource, "Address");
- txtPhone.DataBindings.Clear();
- txtPhone.DataBindings.Add("Text", DGSQL.DataSource, "Phone");
- txtEmail.DataBindings.Clear();
- txtEmail.DataBindings.Add("Text", DGSQL.DataSource, "Phone");
- }
5.1 Insert dữ liệu vào Table bằng SQL trực tiếp có truyền tham số
- private void subInsertDulieucótruyềnthamsố()
- {
- subCreateConnect();
- //Command
- SqlCommand objCommand = new SqlCommand();
- objCommand.Connection = objConnect;
- objCommand.CommandType = CommandType.Text;
- objCommand.CommandText = "Insert into Danhsach Values (@STT,@Name,@Address, @Phone, @Email)";
- //THam số
- objCommand.Parameters.Add("@STT", SqlDbType.Int).Value = Convert.ToInt32(txtSTT.Text);
- objCommand.Parameters.Add("@Name", SqlDbType.NText).Value = txtName.Text;
- objCommand.Parameters.Add("@Address", SqlDbType.NText).Value = txtAddress.Text;
- objCommand.Parameters.Add("@Phone", SqlDbType.NText).Value = txtPhone.Text;
- objCommand.Parameters.Add("@Email", SqlDbType.NText).Value = txtEmail.Text;
- objCommand.ExecuteNonQuery();
- //Hueỷ đối tượng
- objCommand.Dispose();
- objCommand = null;
- subDestroyConnect();
- }
5.2 Insert dữ liệu vào Table thông qua Adapter
Để Insert được 1 record mới vào trong table thông qua Adapter thì đầu tiên ta phải Insert thêm 1 dòng mới vào trong Table trước.
- private void subInsertDữliệuByAdapter()
- {
- subCreateConnect();
- //Command
- SqlCommand objCommand = new SqlCommand();
- objCommand.Connection = objConnect;
- objCommand.CommandText = "Select * from Danhsach where STT>@STT";
- objCommand.Parameters.Add("@STT", SqlDbType.Int).Value = 4;
- //SqlAdapter
- SqlDataAdapter objAdapter = new SqlDataAdapter();
- objAdapter.SelectCommand = objCommand;
- DataTable objTable = new DataTable();
- objAdapter.Fill(objTable);
- //Insert 1 dòng mới vào DataTable
- DataRow objRow = objTable.NewRow();
- objRow["STT"] = Convert.ToInt32(txtSTT.Text);
- objRow["Name"] = txtName.Text;
- objRow["Address"] = txtAddress.Text;
- objRow["Phone"] = txtPhone.Text;
- objRow["Email"] = txtEmail.Text;
- objTable.Rows.Add(objRow);
- //Tạo command để Insert dữ liệu vào Database nguồn
- objCommand = new SqlCommand();
- objCommand.Connection = objConnect;
- objCommand.CommandType = CommandType.Text;
- objCommand.CommandText = "Insert into Danhsach Values (@STT,@Name,@Address, @Phone, @Email)";
- //THam số
- objCommand.Parameters.Add("@STT", SqlDbType.Int,5,"STT");
- objCommand.Parameters.Add("@Name", SqlDbType.NText,30,"Name");
- objCommand.Parameters.Add("@Address", SqlDbType.NText,30,"Address");
- objCommand.Parameters.Add("@Phone", SqlDbType.NText,10,"Phone");
- objCommand.Parameters.Add("@Email", SqlDbType.NText,30,"Email");
- //Update dòng mới vào nguồn
- objAdapter.InsertCommand = objCommand;
- objAdapter.Update(objTable);
- //Hủy đối tượng
- objCommand.Dispose();
- objCommand = null;
- objTable.Dispose();
- objTable = null;
- objAdapter.Dispose();
- objAdapter = null;
- subDestroyConnect();
- }
0 comments:
Post a Comment