30/09/2018, 17:55
Lỗi không thể thêm ngày giờ vào CSDL thông qua Datetimepicker trong VB.NET?
Chào các bạn,
Mình đang viết chương trình bằng quản lý khách hàng VB.Net, mình gặp một vấn đề như thế này, thêm dữ liệu vào CSDL thông qua Textbox và thêm Ngày Sinh thông qua DateEdit, mình sử dụng DateEdit tích hợp vào Visual của DevExpress chứ không phải Datetimepicker, cũng giống nhau cả thôi, do yêu cầu cấp trên
//Hàm kiểm tra trùng ID
Public Function checkID(ByVal ID As String) As String
Dim sqlCom As New SqlCommand("Select Count(MaKH) From [TTKH] Where MaKH='" & ID & "' ", con)
Dim count As String = Convert.ToString(sqlCom.ExecuteScalar())
Return count
End Function
Private Sub btnthem_Click(sender As Object, e As EventArgs) Handles btnthem.Click
If (checkID(txtmakh.Text) > 0) Then
MessageBox.Show("Mã khách hàng đã tồn tại!")
ElseIf txtmakh.Text = "" Then
MessageBox.Show("Chưa nhập mã khách hàng")
Else
Try
Dim row As DataRow = dt.NewRow()
row("MaKH") = txtmakh.Text
row("HoVaTen") = txthovaten.Text
row("CMND") = txtcmnd.Text
row("NgaySinh") = DateEdit1.DateTime
row("DiaChi") = txtdiachi.Text
row("DienThoai") = txtdienthoai.Text
row("Email") = txtemail.Text
row("Password") = txtpassword.Text
dt.Rows.Add(row)
GridControl1.DataSource = dt
Dim commandInsert As New SqlCommand()
commandInsert.Connection = con
commandInsert.CommandType = CommandType.Text
commandInsert.CommandText = "Insert Into TTKH Values (@MaKH,@HoVaTen,@CMND,@NgaySinh,@DiaChi,@DienThoai,@Email,@Password)"
commandInsert.Parameters.Add("@MaKH", SqlDbType.NVarChar, 15, "MaKH")
commandInsert.Parameters.Add("@HoVaTen", SqlDbType.NVarChar, 50, "HoVaTen")
commandInsert.Parameters.Add("@CMND", SqlDbType.NVarChar, 12, "CMND")
commandInsert.Parameters.Add("@NgaySinh", SqlDbType.DateTime).Value = "NgaySinh"
commandInsert.Parameters.Add("@DiaChi", SqlDbType.NVarChar, 255, "DiaChi")
commandInsert.Parameters.Add("@DienThoai", SqlDbType.NVarChar, 20, "DienThoai")
commandInsert.Parameters.Add("@Email", SqlDbType.NVarChar, 50, "Email")
commandInsert.Parameters.Add("@Password", SqlDbType.NVarChar, 20, "Password")
da.InsertCommand = commandInsert
da.Update(dt)
MessageBox.Show("Lưu thành công")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
End Sub,
Khi chạy thông báo lỗi failed to convert parameter value from a string to a datetime
Bài liên quan
parameter NgaySinh là kiểu string.
@NgaySinh trong database kiểu Datetime
nên không insert được.
Em dùng google tìm theo cụm từ “vb.net convert string to date”
Cám ơn anh nhưng mà gấp lăm rồi, anh hướng dẫn dùm em luôn được không, chút xíu nữa phải nộp, còn nhiều vấn đề cần giải quyết lắm
Dim value As String = “2000-02-02”
Dim time As DateTime = DateTime.Parse(value)
cám ơn anh, nhưng anh hướng dẫn chính xác câu lệnh dùm e luôn, chèn vào chỗ nào để giải quyết triệt để bài trên
Viết 3 lớp thế này thì sau này sửa lỗi phải cả 100 lần bạn ơi. Hic.
Thôi chủ nhật tuần này có rãnh rỗi thì cafe nhé, mình nhìn thấy vậy buồn quá không nói luôn.
Cho mình cái chỗ hẹn đi, chứ căn bản mình k biết 3 lớp là gì rồi, đi làm áp lực lắm
đi làm thì phải áp lực rồi. Không biết cái gì thì lên mạng tìm và hỏi mọi người. Đừng dấu dốt, dấu dốt là suốt đời kiến thức không lên được.
Nếu biết mình dở cái gì thì tự nghiên cứu những cái mình yếu đi. Chả ai ngồi không giúp cho em cả.
bi lỗi conversion from string to type ‘integer’ is not valid khi chèn vào
anh mới nhờ bạn anh coi code của em. Bạn anh nói em code sai chỗ này
chỗ này sai vì em không gắn giá trị mà gắn 1 chuỗi “NgaySinh”. Nên mới văng ra lỗi này.
anh thì hiểu sai vấn đề nên đưa cách giải quyết sai. :(.
Sửa đúng thì phải như thế này:
khúc code này không đúng, em bỏ nha
p/s: mai mốt em hỏi thì ghi tag cụ thể là làm ngôn ngữ nào, làm web hay làm winform. Anh cứ nghĩ em làm web.
Làm đc rồi thank, nhưng mà khi show lên Date edit nó có dạng đ/mm/yyyy 12:0:0 AM lamd sao cắt bỏ đuocẹ đây
dùng cái này vào chỗ show là ok
Mình muốn tiềm kiếm thông qua txtsearch phai làm sao
mình có 1 procedure trong sql thế này
Hồi trưa sửa được cái lỗi to string type interger rồi thoát ra k lưu lại giờ bị nữa không biết đường sửa tiếp
Lại được rồi, khỗ quá ^^