Đọc dữ liệu từ CSDL trong C#

Dạ em đang học c# form ạ. Em học tới phần kết nối cơ sở dữ liệu và đưa giá trị trong bảng ở CSDL vào textbox. Ở trường thầy dạy bằng Slide ngày xưa, khá cũ :frowning:
em đọc tài liệu trên mạng thấy rất nhiều cách nhưng em muốn học theo cách của thầy em dạy. Thầy em 50 mấy tuổi ạ. Em muốn học từ đơn giản nhất rồi lên nên mới học theo cách của thầy.

Trong slide của thầy em thì dùng cách đơn giản nhất ( thầy em nói vậy) là dùng SqlDataAdapter, DataSet, DataTable để lấy dữ liệu về. Và code như vậy ạ.
File XemKhoa.cs như này ạ:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;


    namespace chuong6
    {
        public partial class Xemkhoa : Form
        {
            private string str_conn = "Data Source=ADMIN;Initial Catalog=QL_Sinh_Vien;Integrated Security=True";
            private SqlDataAdapter da;
            private DataSet ds;
            private DataTable table;
            int pos = 0;

        public Xemkhoa()
        {
            InitializeComponent();
        }
        private void Xemkhoa_Load(object sender, EventArgs e)
        {
            string query = "SELECT * FROM KHOADT";
            da = new SqlDataAdapter(query, str_conn);
            ds = new DataSet();
            da.Fill(ds, "KHOADT");
            table = ds.Tables["KHOADT"];
            btnFirst.PerformClick(); // click btnFirst
        }
        private void btnFirst_Click(object sender, EventArgs e)
        {
            if (table.Rows.Count == 0)
            {
                MessageBox.Show("Chả có gì trong table cả :) ", "Thông báo");
                return;
            }  // khong co dong nao
            txtMaKhoa.Text = table.Rows[pos]["MAKHOA"].ToString();
            txtTenKhoa.Text = table.Rows[pos]["TENKHOA"].ToString();
        }

        private void btnNext_Click(object sender, EventArgs e)
        {
            if (table.Rows.Count == 0)
            {
                return;
            }  // khong co dong nao
            pos++;
            if(pos > table.Rows.Count - 1)
            {
                pos = table.Rows.Count;
            }
            txtMaKhoa.Text = table.Rows[pos]["MAKHOA"].ToString();
            txtTenKhoa.Text = table.Rows[pos]["TENKHOA"].ToString();
        }
    }
}

Em chạy code bình thường k lỗi ạ. Em nghĩ cái hàm XemKhoa_Load() gì gì đó nó chả được gọi gì cả và em không biết phải gọi nó ở chỗ nào nữa ạ. Tóm lại là chỉ đọc dữ liệu từ 1 bảng rồi hiện lên textbox đơn giản thế mà em làm mãi không hiện :frowning: ức phát khóc :frowning: Em còn học tới phần SqlCommandBuilder và tiếp nữa là hiện dữ liệu trong bảng lên DataGridView nữa ạ :frowning: . Bây giờ cái nền ở dưới em không hiểu và không làm được thì mấy cái đó cũng tịt. Bài tuy đơn giản nhưng hơi dài, cám ơn đã đọc ạ. Các bác, các anh các chị giúp em với huhu :frowning:

1 Like

=> Chưa có ConnectSQL thì làm sao mà có dữ liệu được >> Chưa mở tủ lạnh mà muốn lấy đồ lên trong???
Với Có một số vấn đề như này nhé :

  1. Sử dụng datatable lấy dữ liệu về sử dụng rất khó ( Khi dữ liệu lớn )
  2. Thấy một số lệnh SQL toàn SELECT *FROM =)) Khi nào dữ liệu nhiều sẽ biết mùi . Treo cả Server luôn . => Chỉ Select những thứ mình cần thoai.
3 Likes

dạ em mới tìm hiểu thêm cái hàm a nói ạ.

à =)) nếu đúng thì là SQLconnection

Cái hàm Load nó là sự kiện. Sẽ được gọi tự động khi mở form.

Tìm hiểu linq to sql đi em.
Không mạnh mẽ mềm dẻo như mấy cái sqlconnection, sqladapter… khi truy cập bảng tên động nhưng được cái dễ dùng.
Nếu không có bảng tên động thì cứ linq mà vã.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?