Lập trình cơ sở dữ liệu
lượt xem 85
download
Đối tượng Sqlconnection Không gian tên sử dụng là : System.Data.SqlClient ; 1. Kết nối theo đặc quyền hệ điều hành Cú pháp 1 : Server = servername [ \InstanceName ]; Database =
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình cơ sở dữ liệu
- Lập trình cơ sở dữ liệu I. Đối tượng Sqlconnection Không gian tên sử dụng là : System.Data.SqlClient ; 1. Kết nối theo đặc quyền hệ điều hành Cú pháp 1 : Server = servername [ \InstanceName ]; Database = databasename; Integrated Security = SSPI; Cú pháp 1 : Server = servername[ \InstanceName ]; Database = databasename; Integrated Security = true; Cú pháp 3 : Server = servername [ \InstanceName ]; Initial Catolog = databasename; Integrated Security = true; • Chú ý : Tài khoản đăng nhập phải được khai báo trong phần Login 2. Kết nối theo đặc quyền SQL Server Cú pháp 1 (Chung) : Server = Servername[ \InstanceName ]; Database = Databasename; Use ID = Username; Password = YourPasword; [Connection Timeout = second;] [port = portno;] [Persist Security Info = true;] • Chú ý : Servername có thể là : (local) hoặc ( . ) hoặc (Địa chỉ IP) . Cú pháp 2 : Với dạng Attachment và phiên bản SQL Server 2005 (SQLEXPRESS) @”Data Source = (local)\SQLEXPRESS; AttachDbFilename = ; Integrated Security = true; Use Instance = true”; 3. Tập tin lưu chuỗi kết nối Ta có thể sử dụng các định dạng *.ini hoặc *.txt để lư chuỗi kết nối . Tuy nhiên khi làm việc với .Net chúng ta nên sử dụng định dạng *.config đã được hố trợ sẵn. - Cú pháp 1: ?xml version="1.0" encoding="utf-8" ?>
- Cách đọc nội dung chuỗi kết nối theo cú pháp 1 ta sử dụng phương thức connectionStrings của lớp connectionStringSettings thuộc không gian tên System.Configuration; II. Đối tượng SQLCommand 2.1 Khai báo SqlCommand sqlCommand; 2.2 Khởi tạo Có 4 Constructor để khai báo khởi tạo đối tượng này + sqlCommand = new SqlCommand(); + sqlCommand = new SqlCommand(string CommandText); + sqlCommand = new SqlCommand(string CommandText,SqlConnection sqlConnection); + sqlCommand = new SqlCommand(string CommandText,SqlConnection sqlConnection,SqlTrasaction sqlTransaction); 2.3 Các thuộc tính 2.3.1 CommandText Cho phép khai báo một chuỗi phát biểu SQL Server VD : String strSQL = “Select * from TBLSinhvien”; sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; 2.3.2 CommandType Cho phép ta chọn một trong 3 giá trị enum là : Text,TableDirect,StoredProcedure VD: String strSQL = “spDanhsachSV”; sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL;am sqlCommand.CommandType = CommandType.StoredProcedure; • Lưu ý khi thủ tục có tham số truyền vào thì ta có thể sử dụng đối tượng SqlParameterCollection hay SqlParameter 2.3.3 CommandTimeout Cho phép khai báo thời gian chờ thực thi phát biểu SQL được tính bằng giây VD : String strSQL = “spDanhsachSV”; sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.CommandTimeout = 30; 2.3.4 Connection Cho phép ta khởi tạo đối tượng sqlConnection mà không cần phải thông qua Constructor VD : String strSQL = “spDanhsachSV”; sqlCommand = new SqlCommand();
- sqlCommand.CommandText = strSQL; sqlCommand.Connection = sqlConnection; sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.CommandTimeout = 30; 2.4 Phương thức 2.4.1 Phương thức ExecuteNonQuery Thực thi các phát biểu SQL, thử tục nội tại, và nó trả về số bản ghi đựoc thực thi VD : sqlCommand.Connection = sqlConnection; sqlConnnection.Open(); String strSQL = “delete from TBLSinhvien where Masv = ‘SV0000001’”; sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; int records = sqlCommand.ExcuteNonQuery(); sqlConnection.Close(); sqlConnection.Dispose(); Thực hiện thêm , sửa , xoá một bản ghi : using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Windows.Forms; namespace DoituongSQLCommand { public partial class Form1 : Form { // Khai bao doi tuong sqlConnection SqlConnection sqlConnection = new SqlConnection(); string connectionString = @"server =QUYETNV87\SQLEXPRESS ;" + "database = Sinhvien ;" + "Integrated Security = True;"; public Form1() { InitializeComponent(); } private void btnSQLinsert_Click(object sender, EventArgs e) { try { sqlConnection.ConnectionString = connectionString; sqlConnection.Open(); String strSQL = "insert into TBLSinhvien(MaSV,Hoten,Gioitinh,Ngaysinh,Malop,M atinh) values('SV0000011','Trần Quốc Huy','Nam','07/19/1986','1900052','T09')"; SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; sqlCommand.Connection = sqlConnection; int i = sqlCommand.ExecuteNonQuery(); // Đóng kết nối sqlConnection.Close(); // Giải phóng kêt nối cơ sở dữ liệu
- sqlConnection.Dispose(); MessageBox.Show("Đã thêm " + i.ToString() + " bản ghi"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Form1_Load(object sender, EventArgs e) { } private void btnSQLupdate_Click(object sender, EventArgs e) { try { sqlConnection.ConnectionString = connectionString; sqlConnection.Open(); String strSQL = "Update TBLSinhvien set Matinh ='T15' where Matinh='T05'"; SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; sqlCommand.Connection = sqlConnection; int i = sqlCommand.ExecuteNonQuery(); // Đóng kết nối sqlConnection.Close(); // Giải phóng kêt nối cơ sở dữ liệu sqlConnection.Dispose(); MessageBox.Show("Đã cập nhật " + i.ToString() + " bản ghi"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void btnSQLdelete_Click(object sender, EventArgs e) { try { sqlConnection.ConnectionString = connectionString; sqlConnection.Open(); String strSQL = "Delete TBLSinhvien where MaSV='SV0000011'"; SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; sqlCommand.Connection = sqlConnection; sqlCommand.CommandTimeout = 60; int i = sqlCommand.ExecuteNonQuery(); // Đóng kết nối sqlConnection.Close(); // Giải phóng kêt nối cơ sở dữ liệu sqlConnection.Dispose(); MessageBox.Show(i.ToString() + " bản ghi đã được xoá "); } catch (Exception ex)
- { MessageBox.Show(ex.Message); } } private void btnInsertAttach_Click(object sender,EventArgs e) { SqlConnection sqlConnection = new SqlConnection(); string connectionString = @"server=(local)\SQLEXPRESS ;" + @"AttachDbFilename =E:\LAPTRINH\Database\Sinhvien.mdf;" + @"Integrated Security = True;" + @"User Instance= true;"; sqlConnection.ConnectionString = connectionString; try { sqlConnection.Open(); String strSQL = "insert into TBLSinhvien(MaSV,Hoten,Gioitinh,Ngaysinh,Malop,M atinh) values('SV0000011','Trần Quốc Huy','Nam','07/19/1986','1900052','T09')"; SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = strSQL; sqlCommand.Connection = sqlConnection; int i= sqlCommand.ExecuteNonQuery(); // Đóng kết nối sqlConnection.Close(); // Giải phóng kêt nối cơ sở dữ liệu sqlConnection.Dispose(); MessageBox.Show(""); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } 2.4.2 Phương thức ExecuteScalar Phương thức này thực thi phát biểu SQL Server giá trị trả về là kiểu đối tượng (object) Nó thường được dùng để lấy giá trị của tổng các mấu tin hay giá trị của cột hay hàng thứ nhất Ví dụ : using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Windows.Forms; namespace ExecuteScalar { public partial class Form1 : Form { public Form1() { InitializeComponent();
- } private void btnSelectCount_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); string connectionString = @"server = (local)\SQLEXPRESS ;" + "database = Sinhvien;" + "Integrated Security = true;"; conn.ConnectionString = connectionString; try { conn.Open(); String strSQL = "Select count(*) from TBLSinhvien"; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = strSQL; object obj = cmd.ExecuteScalar(); MessageBox.Show("Số bản ghi trong bảng TBLSinhvien là " + Convert.ToString(obj)); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void btnGiatricot_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); string connectionString = @"server = (local)\SQLEXPRESS ;" + "database = Sinhvien;" + "Integrated Security = true;"; conn.ConnectionString = connectionString; try { conn.Open(); String strSQL = "Select [Hoten] from TBLSinhvien"; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = strSQL; object obj = cmd.ExecuteScalar(); MessageBox.Show("Họ tên của SV đầu tiên bảng TBLSinhvien là " + Convert.ToString(obj)); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } • Kết quả :
- 2.4.3 Phương thức ExecuteReader Khác với hai phương thức trên , phương thức này trả về tập các giá trị chỉ đọc một chiều và dùng đối tượng sqlDataReader để nắm dữ tập dữ liệu đó. Ví dụ : Ta lấy ra 2 cột là mã sinh viên và Họ tên trong bảng TBLSinhvien using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ExecuteReader { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnGetData_Click(object sender, EventArgs e)
- { SqlConnection conn = new SqlConnection(); string connectionString = @"server = (local)\SQLEXPRESS ;" + "database = Sinhvien;" + "Integrated Security = true;"; conn.ConnectionString = connectionString; try { // Mở kết nối cơ sở dữ liệu conn.Open(); // Khai báo và khởi tạo đối tượng SqlCommand SqlCommand cmd = new SqlCommand("Select * from TBLSinhvien", conn); //Khai báo đối tượng SqlDataReader SqlDataReader dr = cmd.ExecuteReader(); string str = "Mã sinh viên - Họ tên\r\n\n"; //Đọc từng bản ghi while (dr.Read()) { str += dr.GetString(0) + " - " + dr.GetString(1) + "\r\n"; } // Đóng và giải phóng đôi tưọng SqlDataReader dr.Close(); dr.Dispose(); MessageBox.Show(str); //Đóng và giải phóng kết nối cơ sở dữ liệu conn.Close(); conn.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } • K ết qu ả :
- 2.4.4 Phương thức ExcuteXmlReader Phương thức này tương tự như phương thức ExecuteReader nhưng nó trả về tập dữ liệu có định dạng XML và sử dụng đối tượng XMLReader để nắm dữ tập dữ liệu đó. Ví dụ : Đọc bản ghi đầu tiên trong bảng TBLSinhvien theo định dạng XML using System; using System.Collections.Generic; using System.ComponentModel; using System.Xml; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ExecuteXmlReader { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnXmlReader_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); string connectionString = @"server =(local)\SQLEXPRESS ;" + "database = Sinhvien;" + "Integrated Security = true;"; conn.ConnectionString = connectionString; try { // Mở kết nối cơ sở dữ liệu conn.Open(); // Khai báo và khởi tạo đối tượng SqlCommand SqlCommand cmd = new SqlCommand("Select top 1 * from TBLSinhvien for xml auto", conn);
- //Khai báo đối tượng XmlReader XmlReader xmlrd = cmd.ExecuteXmlReader(); XmlDocument doc = new XmlDocument(); doc.Load(xmlrd); string str = ""; //Đọc từng bản ghi foreach (XmlNode xmlNode in doc.ChildNodes) { str += xmlNode.OuterXml +"\n"; } xmlrd.Close(); MessageBox.Show(str); //Đóng và giải phóng kết nối cơ sở dữ liệu conn.Close(); conn.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } • Kết quả : 2.5 Xây dựng lớp dùng chung cho SQLServer Khi chúng ta muốn sử dụng các phương thức trên chung trong cơ sở dữ liệu SQL Server ,để có thể truyền vào tham số thì chúng ta sẽ xây dụng lớp dùng chung , giả sử là Database và kêt hợp với đôí tượng SqlConnection ở phần trên . Ta xét ví dụ sau Ví dụ :
- using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Windows.Forms; namespace Lopdungchung { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Connection cn = new Connection(); } private void btnENQ_Click(object sender, EventArgs e) { Database sql = new Database(); try { int r = sql.ExecuteNonQuery("Update TBLSinhvien set Matinh='T02' where Masv = 'SV0000010'", CommandType.Text); MessageBox.Show("Đã có " + r.ToString() + " bản ghi đã được sửa"); } catch (Exception ex) { MessageBox.Show(ex.Message + sql.StrError); } } private void btnESL_Click(object sender, EventArgs e) { Database sql = new Database(); try { object obj = sql.ExecuteScalar("Select count(*) from TBLSinhvien", CommandType.Text); MessageBox.Show("Có " + Convert.ToString(obj) + " bản ghi trong bảng TBLSinhvien"); } catch (Exception ex) { MessageBox.Show(ex.Message + sql.StrError); } } private void btnER_Click(object sender, EventArgs e) { Database sql = new Database(); try { object[] obj = sql.ExcuteReader("Select * from TBLSinhvien where MaSV = 'SV0000004'",
- CommandType.Text); MessageBox.Show("Thông tin về SV có mà SV0000004 : " + Convert.ToString(obj[1]) + " - " + Convert.ToString(obj[2])); } catch (Exception ex) { MessageBox.Show(ex.Message + sql.StrError); } } } public class Connection { public static SqlConnection conn; static Connection() { conn = new SqlConnection(); conn.ConnectionString = @"server = QUYETNV87\SQLEXPRESS ;" + "database = Sinhvien ;" + "Integrated Security = True ;"; try { conn.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } public class Database { private string strError = ""; public string StrError { get { return strError; } } public int ExecuteNonQuery(String strSQL, CommandType cmdType) { int recordNumbers = 0; // Khai báo và khởi tạo đối tượng SqlCommand SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSQL; cmd.CommandType = cmdType; cmd.Connection = Connection.conn; try { recordNumbers = cmd.ExecuteNonQuery(); } catch (Exception ex) { strError = "Error : " + ex.Message; } return recordNumbers; } public object ExecuteScalar(String strSQL, CommandType
- cmdType) { object objValues = null; // Khai báo và khởi tạo đối tượng SqlCommand SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSQL; cmd.CommandType = cmdType; cmd.Connection = Connection.conn; try { objValues = cmd.ExecuteScalar(); } catch (Exception ex) { strError = "Error : " + ex.Message; } return objValues; } public object[] ExcuteReader(String strSQL, CommandType cmdType) { object[] info = null; try { SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSQL; cmd.Connection = Connection.conn; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { info = new object[dr.FieldCount]; //Lấy ra mảng đối tượng bằng phương thức GetValues dr.GetValues(info); } dr.Close(); dr.Dispose(); } catch (Exception ex) { strError = "Error : " + ex.Message; } return info; } } } • Kết quả :
- III. Đối tượng SqlParameter và Parameters Collection Ví dụ : using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms; namespace DoituongSqlParameter {
- public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnText_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = @"server = (local)\SQLEXPRESS;" + "database = Sinhvien;" + "Integrated Security = true;"; try { conn.Open(); // Khai báo và khởi tạo đối tượng SqlCommand SqlCommand cmd = new SqlCommand(); cmd.CommandText = "insert into TBLSinhvien(Masv,Hoten,Gioitinh,Ngaysinh, Matinh,Malop,Chucvu,Email,Dienthoai)" + "values(@Masv,@Hoten,@Gioitinh,@Ngaysinh, @Matinh,@Malop,@Chucvu,@Email,@Dienthoai)" ; // Khai báo và khởi tạo đối tượng SqlParameter SqlParameter prm = new SqlParameter(); // Khai báo các thuộc tính ứng với tên tham số // Tham số Masv prm.ParameterName = "@Masv"; prm.SqlValue = "SV0000015"; prm.SqlDbType = SqlDbType.NChar; prm.Size = 10; // Thêm dữ liệu SqlParameter vào đối tượng //SqlCommand cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng Sqlparameter // với hai tham số prm = new SqlParameter("@Hoten", "Vũ Thị Thảo"); prm.SqlDbType = SqlDbType.NVarChar; prm.Size = 50; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Gioitinh", SqlDbType.NChar, 3); prm.SqlValue = "Nữ"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // ứng với ts Ngaysinh prm = new SqlParameter("@Ngaysinh", SqlDbType.DateTime); prm.SqlValue = "11/10/1987"; cmd.Parameters.Add(prm);
- // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Matinh", SqlDbType.NChar, 3); prm.SqlValue = "T17"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Malop", SqlDbType.NChar, 10); prm.SqlValue = "1900052"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Chucvu", SqlDbType.NVarChar, 20); prm.SqlValue = ""; cmd.Parameters.Add(prm); prm = new SqlParameter("@Email", SqlDbType.NChar, 30); prm.SqlValue = "thaovt@gmail.com"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Dienthoai", SqlDbType.NChar, 10); prm.SqlValue = "0975775775"; cmd.Parameters.Add(prm); // Khai báo thuộc tính Connection cmd.Connection = conn; cmd.ExecuteNonQuery(); conn.Close(); conn.Dispose(); MessageBox.Show("Đã chèn thêm bản ghi thành công\nbằng việc sử dụng đối tượng\nSqlParmameter với kiểu Text"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void btnSP_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = @"server = (local)\SQLEXPRESS;" + "database = Sinhvien;" + "Integrated Security = true;"; try { conn.Open(); // Khai báo và khởi tạo đối tượng SqlCommand SqlCommand cmd = new SqlCommand(); cmd.CommandText = "sp_Themsinhvien";
- cmd.CommandType = CommandType.StoredProcedure; // Khai báo và khởi tạo đối tượng SqlParameter SqlParameter prm = new SqlParameter(); // Khai báo các thuộc tính ứng với tên tham số // Tham số Masv prm.ParameterName = "@Masv"; prm.SqlValue = "SV0000016"; prm.SqlDbType = SqlDbType.NChar; prm.Size = 10; // Thêm dữ liệu SqlParameter vào đối tượng // SqlCommand cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng Sqlparameter // với hai tham số prm = new SqlParameter("@Hoten", "Nguyễn Xuân Phương"); prm.SqlDbType = SqlDbType.NVarChar; prm.Size = 50; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Gioitinh", SqlDbType.NChar, 10); prm.SqlValue = "Nam"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // ứng với ts Ngaysinh prm = new SqlParameter("@Ngaysinh", SqlDbType.DateTime); prm.SqlValue = "10/25/1986"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Matinh", SqlDbType.NChar, 10); prm.SqlValue = "T23"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Malop", SqlDbType.NChar, 10); prm.SqlValue = "1900052"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Chucvu", SqlDbType.NChar, 15); prm.SqlValue = ""; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Email", SqlDbType.NChar, 30); prm.SqlValue = "phuongnx@gmail.com"; cmd.Parameters.Add(prm); // Khai báo và khởi tạo đối tượng SqlParameter // với 3 tham số prm = new SqlParameter("@Dienthoai",
- SqlDbType.NChar, 10); prm.SqlValue = "0982550808"; cmd.Parameters.Add(prm); // Khai báo thuộc tính Connection cmd.Connection = conn; cmd.ExecuteNonQuery(); conn.Close(); conn.Dispose(); MessageBox.Show("Đã chèn thêm bản ghi thành công\nbằng việc sử dụng đối tượng\nSqlParameter với thủ tục "); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } • Kết quả :
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình CNC sổ tay
20 p | 1671 | 725
-
Lập trình VBA - Lập trình cơ sở dữ liệu
37 p | 545 | 234
-
Từng bước lập trình cho điện thoại di động J2ME - Phần 5
8 p | 196 | 85
-
Bài giảng cad/cam
80 p | 179 | 77
-
Giáo trình Robot Structural (Tập 1)
158 p | 255 | 67
-
Bài giảng Lập trình mô phỏng robot và hệ cơ điện tử ME4291: Bài 1 - PGS. Phan Bùi Khôi, TS. Phan Mạnh Dần
20 p | 325 | 54
-
Bài giảng Lập trình mô phỏng robot và hệ cơ điện tử ME4291 - PGS. Phan Bùi Khôi & TS. Phan Mạnh Dần
20 p | 284 | 51
-
Giáo trình Cấu trúc dữ liệu và giải thuật - Cao đẳng nghề Đắk Lắk
60 p | 186 | 33
-
Bài giảng Thực hành lập trình CSDL với VB.net: Phần 1 - ĐH Sư Phạm Kỹ Thuật Nam Định
155 p | 62 | 13
-
Bài giảng Thực hành kỹ thuật lập trình: Phần 2 - ĐH Sư Phạm Kỹ Thuật Nam Định
180 p | 45 | 8
-
Bài giảng Thực hành lập trình CSDL với VB.net: Phần 2 - ĐH Sư Phạm Kỹ Thuật Nam Định
153 p | 40 | 8
-
Xây dựng cơ sở dữ liệu hạ tầng kỹ thuật ven biển phục vụ lập danh mục các công trình chịu tác động của biến đổi khí hậu tỉnh Khánh Hòa
8 p | 103 | 5
-
Một số phương pháp tiếp cận trong việc xác định ngữ nghĩa của cơ sở dữ liệu tuyến.
7 p | 81 | 4
-
Nghiên cứu xây dựng trang web và cơ sở dữ liệu hỗ trợ quản lý, điều hành các hệ thống thuỷ lợi theo hướng hiện đại hóa - Ngô Đăng Hải
5 p | 137 | 4
-
Về các lược đồ cơ sở dữ liệu omega phi chu trình
7 p | 79 | 3
-
Xây dựng mô đun hỗ trợ CAPP xuất Gcode tự động trực tiếp từ đối tượng gia công sử dụng lập trình tham số
6 p | 64 | 2
-
Bài giảng Cơ sở dữ liệu Foxpro và Visual Foxpro - CĐ Công nghiệp và xây dựng
46 p | 45 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn