PDA

View Full Version : Nhập ngày tháng ko được



minhhlang
05-03-2009, 23:11
Tôi có bản khachhang gồm:
mskh(int) hoten(nvarchar) ngaysinh(DateTime)
1 form dùnh để nhập thông tin khách hàng có 3 textbox
khi nhập vào textbox ngày sinh và lưu vào csdl thì bị lỗi
(VD: nhập 30/12/80 thì không được mà phải nhập là 12/30/80)
tôi đã set dateformat dmy trong csdl rồi
tôi dùng c# 2005 và sql 2000
Ai biết chỉ giùm

serivn
06-03-2009, 01:14
Cái nè thì bạn không nên lưu trực tiếp cả một chuỗi nhận từ TextBox mà nên dùng cách chuyển qua kiểu DateTime thì khi lưu vào CSDL nó sẽ tự biết đâu là ngày/Tháng/năm bằng cách dùng như sau:



DateTime time = DateTime.Parse(Texbox.Text);


Chúc bạn thành công!!:)

dq_ninh
06-03-2009, 01:41
Đây là một "khúc mắc" mà hình như hầu hết những lập trình gia trẻ thiếu kinh nghiệm tại Hoa-Kỳ đều vấp phải khi họ viết lập trình ...toàn cầu hoá. Tức là lập trình được dùng bởi những quốc gia Âu châu và những quốc gia ngoài Hoa Kỳ. Bởi vì những quốc gia đó Windows dành riêng cho họ, hoặc họ đã cài đặt "locale" của Windows

Bạn nên dùng yyyymmdd (ISO standard)khi nhập ngày tháng vào CSDL. Thí dụ như

30/12/80 - khi nhập vào CSDL nên dùng 19801230

Thứ hai, trong C#, bạn có thể dùng MaskedTextBox để nhập ngày tháng theo kiểu Pháp/Việt Nam như 30/12/80, và MaskedTextBox sẽ cho bạn 19801230 thay vì 30/12/80.



Tôi có bản khachhang gồm:
mskh(int) hoten(nvarchar) ngaysinh(DateTime)
1 form dùnh để nhập thông tin khách hàng có 3 textbox
khi nhập vào textbox ngày sinh và lưu vào csdl thì bị lỗi
(VD: nhập 30/12/80 thì không được mà phải nhập là 12/30/80)
tôi đã set dateformat dmy trong csdl rồi
tôi dùng c# 2005 và sql 2000
Ai biết chỉ giùm

minhhlang
06-03-2009, 16:03
cám ơn đã giải đáp. tôi sẽ thử

[=========> Bổ sung bài viết <=========]

Bác serivn ơi, tôi thử theo cách của bác sao không được, nó báo là "syntax error converting datetime from character string".

joga7785
07-03-2009, 08:55
Bạn dùng hàm convert trong SQL là ngon!
sqlchungtu += "Convert(DateTime,'" + mastxtNgayKy.Text + "',103)" + ",";

quanghien2005k
09-03-2009, 13:59
theo mình cách nhanh nhất là bạn dùng dateTimePicker thì không lo sợ bị lỗi như vậy đâu