Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Numericupdown trong C#

Các bạn cho mình hỏi: mình có 1 cái numericupdown để nhập điểm cho học sinh, mình ràng buộc thang điểm từ 0 đến 10, nhưng khi mình nhập trên 10 điểm (15, 17, 20, ...) thì CHƯƠNG TRÌNH không những không xuất hiện thông báo lỗi nhập sai thang điểm quy định mà còn tự động lưu vào database là 10 lun. Điểm số mình dùng kiểu decimal
Mong đc sự giúp đỡ của các bạn.
Thanks!

Code:
  if ((numdiem.Value.ToString().Length <= 4))
                            {
                                if (decimal.Parse(numdiem.Value.ToString()) <= 10)//điều kiện quy định thang điểm
                                {
                                    decimal diem = Math.Round(numdiem.Value, 1, MidpointRounding.AwayFromZero);
                                    string sql = "insert into tblnhapdiem(Sothehs,Manam,Makhoi,Malop,Mahocki,Mamon,Macotdiem,diem) values(N'" + mahs + "',N'" + cbonamhoc.SelectedValue.ToString() + "',N'" + cbokhoi.SelectedValue.ToString() + "',N'" + cbolop.SelectedValue.ToString() + "',N'" + cbohocki.SelectedValue.ToString() + "',N'" + cbomonhoc.SelectedValue.ToString() + "',N'" + cbocotdiem.SelectedValue.ToString() + "','" + diem + "')";
                                    tb.caulenh(sql);
                                    naplistDiem(cbonamhoc.SelectedValue.ToString(), cbokhoi.SelectedValue.ToString(), cbolop.SelectedValue.ToString(), mahs, cbohocki.SelectedValue.ToString(), cbomonhoc.SelectedValue.ToString(), cbocotdiem.SelectedValue.ToString());
                                    numdiem.Value = numdiem.Minimum;
                                    //đoạn này xử lý lệnh store procedure trong database
                                    try
                                    {
                                        string sql2 = "exec diem N'" + mahs + "',N'" + cbonamhoc.SelectedValue.ToString() + "',N'" + cbokhoi.SelectedValue.ToString() + "',N'" + cbolop.SelectedValue.ToString() + "',N'" + cbohocki.SelectedValue.ToString() + "',N'" + cbomonhoc.SelectedValue.ToString() + "'";
                                        tb.caulenh(sql2);
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBoxEx.Show("Lỗi rồi: " + ex.Message);
                                    }
                                }
                                else//nếu nhập quá thang điểm
                                {
                                    MessageBoxEx.Show("Nhập điểm không đúng thang quy định!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    numdiem.Value = numdiem.Minimum;
                                }
                            }
                            else
                            {
                                MessageBoxEx.Show("Nhập điểm không đúng định dạng!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                numdiem.Value = numdiem.Minimum;
                            }
                        }  
Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

Theo mình biết thì khi mình set thuộc tính Minimum, Maximum thì khi nhập sai khoảng giá trị nó sẽ tự reset thành giá trị lớn hay nhỏ nhất của khoảng cho phép.
Nếu muốn bắt người dùng nhập đúng thì bạn nên bỏ ràng buộc min, max đi, dùng sự kiện của nhóm Focus (các khác tùy bạn) như Leave để khi mất focus sẽ kiểm tra giá trị liền và khi đó chỉ cần lấy giá trị và so sánh có được phép hay không cho dễ... Còn chuyện nhập điểm đúng rồi thì xử lý như thế nào là tùy bạn mà thôi.
0 Lượt thích

mình vẫn chưa hiểu, bạn có thể hướng dẫn được không hay teamview giúp mình với!
thank bạn nhiều!
0 Lượt thích

thế này nhé, bạn dùng sự kiện keypress của numupdow kia trong sự kiện này bạn kiểm tra nếu text của numupdow kia mà > max value thì mesagebox thông báo ra là nhập sai
, rồi set lại text cho numupdow = max value. và đoạn code trên của bạn vẫn giữ nguyên..
0 Lượt thích

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng