Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 23 kết quả

Đề tài: Gán giá trị null trên datetimepicker control

  1. #1
    Ngày gia nhập
    08 2010
    Nơi ở
    TP.HCM
    Bài viết
    40

    Angry Gán giá trị null trên datetimepicker control

    Tôi đang làm một bài tập nhỏ Windows Form. Và trên Form tôi có 1 control DateTimePicker
    để nhập ngày sinh. Vấn đề tôi gặp phải là khi tôi để trống và ko nhập giá trị trên control thì bị lỗi là không cho nhập giá trị null . Tôi rất mong được mọi người giúp đỡ.
    Attached Thumbnails Attached Thumbnails Capture.PNG  
    Happ code </>

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    51

    Đương nhiên là không có giá trị null rồi. Vấn đề này tôi thường xử lý bằng cách quy ước cho giá trị là MinValue (0:00:00 1/1/1). Khi cần kiểm tra null tôi sẽ kiểm tra với giá trị MinValue

  3. #3
    Ngày gia nhập
    08 2010
    Nơi ở
    TP.HCM
    Bài viết
    40

    Cám ơn bạn đã trả lời. Tôi nghĩ cách của bạn cũng rất hay, nhưng sẽ nảy sinh vấn đề là khi show ngày sinh lên thì sẽ hiển thị một dãy số toàn là 0 thì không được đẹp cho lắm. Tôi cũng có tham khảo nhiều cách như dùng : DBNull , hay Nullable<datetine> và cả DateTime ? datenull nhưng vẫn không thể thực hiện được.Do cái ngày sinh của tôi là truyền theo kiểu tham biến hay sao nên không cho phép thực hiện điều đó. Tôi nghĩ sẽ có cách thực hiện việc này. Mong các bác hồi âm tiếp tục cho topic này. Thanks
    Happ code </>

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    51

    Trong DateTimePicker thì bắt buộc phải hiển thị một thời điểm nào đó, do đó bắt buộc nó phải có dữ liệu không thể để trắng được (Khi thiết kế, bạn tạo DateTimePicker và thử xóa thuộc tính Value, xuất hiện lỗi). Tôi thì thường làm bằng User Control, một TextBox để hiển thị kết hợp với một DateTimePicker cho phép chọn thời gian (TextBox nằm trên DateTimerPicker). Sau đó viết code đồng bộ thời gian cho các thao tác: nhập vào TextBox hoặc chọn từ DateTimePicker
    Đã được chỉnh sửa lần cuối bởi cuongdoannhat : 23-11-2011 lúc 05:54 PM.

  5. #5
    Ngày gia nhập
    07 2010
    Bài viết
    138

    DateTimePicker không set giá trị null được nhưng mình nhớ là trên mạng có nhiều code có thể tùy biến được 1 tool tương tự DTP và có thể set null được. Còn nếu bạn không thích có thể dùng control ngoài, ví dụ DateTimeInput của Dotnetbar chẳng hạn

  6. #6
    Ngày gia nhập
    08 2010
    Nơi ở
    TP.HCM
    Bài viết
    40

    Angry Gán giá trị null trên datetimepicker control

    Cám ơn bạn Leminh_005 . Tôi cũng thử dùng control ngoài luôn như datetime picker EXtra hay Datetime input như bạn nói nhưng mặc dù nó cho phép nhận giá trị null. Nhưng kiểu datetime thì ko cho phép làm điều đó( do trong csdl field Ngày sinh mình lưu kiểu DateTime) . Bạn có thể share cho mình code xử lí của control datetime input được không? hay các control khác cũng được. Thanks
    Happ code </>

  7. #7
    Ngày gia nhập
    07 2010
    Bài viết
    138

    Khi thiết kế CSDL bạn để trường NgaySinh là allow null thì nó sẽ cho phép null mà. Còn code nó thì chẳng có gì đặc biệt. Các thuộc tính như giá trị là .Value, text là .Text v.v như những control khác thôi. Để kiểm tra xem DateTimeInput có được chọn giá trị hay không thì if(dtiBirthDate.Text.Length >0) {} // Lớn hơn 0 là có giá trị.

  8. #8
    Ngày gia nhập
    08 2010
    Nơi ở
    TP.HCM
    Bài viết
    40

    Cám ơn bạn LeMinh_005 nhe. Mình đã làm như bạn nói trên control datetimeinput nhưng khi insert mình để trống field ngày sinh là vẫn bị lỗi như hình bên dưới . Bạn giúp mình với. Thanks
    Attached Thumbnails Attached Thumbnails Error_DateTimeNgaySinh.PNG  
    Happ code </>

  9. #9
    Ngày gia nhập
    07 2010
    Bài viết
    138

    Như mình đã nói ở trên, bạn phải kiểm tra xem DateTimeInput của bạn đã chọn giá trị hay chưa thì bạn mới được Insert hoặc Update. Ví dụ bạn viết Insert into Student values(ID..., dtiBirthDate.Value,..), trong khi đó cái dtiBirthDate của bạn null không có value hoặc giá trị chưa đúng thì nó sẽ báo lỗi. Bạn thử đặt bug xem, nó báo lỗi giá trị ngày k hợp lệ kìa

  10. #10
    Ngày gia nhập
    08 2010
    Nơi ở
    TP.HCM
    Bài viết
    40

    Đúng là giá trị ngày đang bị Null nên không thê thêm được. Vậy không có cách nào insert mà vẫn để cái field ngày sinh đó trống được hả bạn. Và nếu muốn insert mà để trống không nhập vào ngảy hiện hành hay min value thì mình phải làm sao đây bạn. Bạn chỉ rõ cho mình được không? Thanks
    Happ code </>

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

  1. Đánh dấu ngày lễ,tết trong control DateTimePicker
    Gửi bởi chikaboom trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 01-02-2012, 10:47 PM
  2. Gắn điều kiện khi nhập DateTime cho Control DateTimePicker trong WinForms C#
    Gửi bởi namnguyen1251 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 25-11-2011, 10:57 PM
  3. truy vấn dữ liệu có liên quan đến datetimepicker control
    Gửi bởi stingblue trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 12-06-2011, 11:07 AM
  4. ADO.NET Làm thế nào để tạo 1 cột trong datagridview giống control datetimepicker?
    Gửi bởi ndqvinh04 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 07-03-2011, 05:02 PM
  5. Gán giá trị null cho datetimepicker?
    Gửi bởi shootergt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 21-04-2010, 12:21 PM

Tags của đề tài này

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