Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Kiểm tra dữ liệu rỗng trong CSDL như thế nào?

  1. #1
    Ngày gia nhập
    10 2009
    Bài viết
    63

    Mặc định Kiểm tra dữ liệu rỗng trong CSDL như thế nào?

    Mình có table DONGPHI(IdPT,Masv ,Makthu,MahocKy,Ngaythu,SoTC,SoTien): IdPT,Masv ,Makthu,MahocKy là khóa ngoại,SoTC kiểu int.


    Code:
    public int laySoTC1(string masv)
            {
                SqlConnection con = connData.getCon();
                con.Open();
                string sql = "SELECT SUM(SoTC) FROM DongPhi WHERE MaSV='" + masv + "'";
                SqlCommand cmd = new SqlCommand(sql, con);
                return Convert.ToInt32(cmd.ExecuteScalar());
    
            }
    Mình viết hàm lấy tổng số tín chỉ có trong table => nhưng khi mình chọn MaSV mà chưa có trong tableDongPhi thì báo lỗi.
    -Các bạn có thể hướng dẫn mình cách kiểm tra dữ liệu có tồn tại trong table không? Khi dữ liệu rỗng thì gán cho SoTC = 0.

  2. #2
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    Visual C# Code:
    1. if(exists(SELECT SUM(SoTC) FROM DongPhi WHERE MaSV='" + masv + "'")
    2.      return true;

  3. #3
    Ngày gia nhập
    10 2009
    Bài viết
    63



    Dưới đây là code mô tả những gì mình nói, các bạn giúp mình khăc phục với!
    Code:
    private void txtSoTC_TextChanged_1(object sender, EventArgs e)
            {
                int tc, tc1,tc2;
                try
                {
                    if ((cboNganh.SelectedIndex != -1) && (cboKhoanThu.SelectedIndex != -1))
                    {
                        if (String.IsNullOrEmpty(txtSoTC.Text))
                        {
                            txtSoTien.Text = "";
                            return;
                        }
    
                        else
                        {
                            
                                int sotcDP = dongphiBus.laySoTC1(cboMaSinhVien.SelectedValue.ToString());
                                int sotcN = dongphiBus.laySoTC(cboNganh.SelectedValue.ToString());
                                tc = Convert.ToInt32(txtSoTC.Text);
                                tc1 = tc + sotcDP;
                                tc2 = sotcN - sotcDP;
                                if (tc1 > sotcN)
                                {
                                    MessageBox.Show("Số tín chỉ bạn còn thiếu chỉ là:" + tc2 + " tín chỉ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    txtSoTC.Text = "";
                                }
                                else
                                {
                                    tc = Convert.ToInt32(txtSoTC.Text);
                                    double tien = dongphiBus.laySoTienDM1(cboNganh.SelectedValue.ToString(), cboKhoanThu.SelectedValue.ToString());
                                    double sotien = tien * tc;
                                    txtSoTien.Text = Convert.ToString(sotien);
                                }
    
                            
    
                         }
                                  
                     }
                
                }
                catch
                {
                    return;
                    
                }
                
    
            }

  4. #4
    Ngày gia nhập
    08 2009
    Nơi ở
    TP Cần Thơ - Lộ 91B
    Bài viết
    214

    Trích dẫn Nguyên bản được gửi bởi suzuke169 Xem bài viết
    Mình có table DONGPHI(IdPT,Masv ,Makthu,MahocKy,Ngaythu,SoTC,SoTien): IdPT,Masv ,Makthu,MahocKy là khóa ngoại,SoTC kiểu int.


    Code:
    public int laySoTC1(string masv)
            {
                SqlConnection con = connData.getCon();
                con.Open();
                string sql = "SELECT SUM(SoTC) FROM DongPhi WHERE MaSV='" + masv + "'";
                SqlCommand cmd = new SqlCommand(sql, con);
                return Convert.ToInt32(cmd.ExecuteScalar());
    
            }
    Mình viết hàm lấy tổng số tín chỉ có trong table => nhưng khi mình chọn MaSV mà chưa có trong tableDongPhi thì báo lỗi.
    -Các bạn có thể hướng dẫn mình cách kiểm tra dữ liệu có tồn tại trong table không? Khi dữ liệu rỗng thì gán cho SoTC = 0.
    - Làm thế này đi bạn
    Code:
            public int laySoTC1(string masv)
            {
                SqlConnection con = connData.getCon();
                con.Open();
                string sql = "SELECT SUM(SoTC) FROM DongPhi WHERE MaSV='" + masv + "'";
                SqlCommand cmd = new SqlCommand(sql, con);
                SqlDataReader reader = cmd.ExcuteReader();
    
                int TC = 0;
                if ( reader.Read() && reader.IsDBNull(0) == false ) TC = reader.GetInt32(0);
               
                reader.Close();
                return TC;
            }
    - Bạn muốn biết tại sao cần có hàm IF để kiểm tra thì vào SQL Management rồi thử chạy câu truy vấn của bạn

    PHÁT TRIỂN PHẦN MỀM HỖ TRỢ CÔNG VIỆC
    ỨNG DỤNG QUẢN LÝ CHO DOANH NGHIỆP VỪA VÀ NHỎ

    (0969.867.490 - ltnghia.wins@gmail.com)

  5. #5
    Ngày gia nhập
    10 2009
    Bài viết
    63

    Thank bạn nhiều!!!!

Các đề tài tương tự

  1. Kết nối CSDL Access trong C# như thế nào?
    Gửi bởi thuchobiet trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 17
    Bài viết cuối: 12-10-2012, 02:21 PM
  2. cách kết nối đến CSDL với c1flexGrid trong lập trình C# như thế nào?
    Gửi bởi wkiamiuemth trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 10-10-2011, 01:58 PM
  3. Cách insert ảnh vào CSDL trong C# như thế nào?
    Gửi bởi cham3cham trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 11-04-2011, 12:35 PM
  4. xử lý trường có kiểu bit trong csdl như thế nào?
    Gửi bởi sokhanh1981 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 08-09-2010, 06:15 PM
  5. Lập trình với CSDL trong C# cần gì và làm như thế nào?
    Gửi bởi baotran trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 25-03-2010, 06:49 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn