PDA

View Full Version : hỏi nhập kiểm tra dữ liệu null



poep
10-01-2011, 01:54
chào các bác
các bác giúp tui trường hợp nay với: trên datagrid tui có cột ngày tháng có giá trị null. tui lấy giá trị vào biến như sau: ngaykham = dgv1.Rows(i).Cells(25).Value nếu gặp giá trị null nó thông báo thé này "Conversion from type 'DBNull' to type 'Date' is not valid." tui muốn khi gặp giá trị null thì nó thay thế bằng gia trị "01/01/1900"
tui load từ excel vào datagrid sau đó từ datagrid imporrt vào sql database ( viết băngd vb.net 2005)
câu lệnh insert đay:strsql = "SET DATEFORMAT DMY;Insert Into th_mau10 (ngay_kham,ngay_ra,ngoai_tru,noi_tru) Values(N'" & ngaykham & "',N'" & ngayra & "',N'" & ngoaitru & "',N'" & noitru & "')"
xin các bác giúp đỡ

poep
10-01-2011, 22:18
Hic cam on bac da gop y. nhung tui lam no van bao loi nhu vay. bac kiem tra lai giup voi

zxcongducxz
11-01-2011, 00:16
Database


create database BV
go
use BV
go
SET DATEFORMAT DMY;
go
create table th_mau10
(
Ma bigint identity(1,1) primary key
,ngay_kham smalldatetime
,ngay_ra smalldatetime
,ngoai_tru nvarchar(50)
,noi_tru nvarchar(50)
)

Code chính


Imports System.Data.SqlClient
Public Class Form1
Dim dgv As New DataGridView()
Dim KetNoi As New SqlConnection("Data Source=.;Initial Catalog=BV;Integrated Security=True")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Kéo thả DataGridView vào cửa sổ Form
dgv.Bounds = New Rectangle(New Point(0, 0), New Size(600, 200))
dgv.AllowUserToAddRows = True
Me.Width = 600
Me.Height = 300
Me.Controls.Add(dgv)

'Đổ dữ liệu vào DataTable
Dim dt As New DataTable()
dt.Columns.Add("ngay_kham")
dt.Columns.Add("ngay_ra")
dt.Columns.Add("ngoai_tru")
dt.Columns.Add("noi_tru")
dt.Rows.Add(New String() {"15/1/2000", "1/2/2000"})
dt.Rows.Add(New String() {"20/1/2000", "1/2/2000"})
dt.Rows.Add(New String() {"25/1/2000", "1/2/2000"})
dt.Rows.Add(New String() {"", "1/2/2000"})
dgv.DataSource = dt
End Sub
Private Sub btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn.Click
For i As Int32 = 0 To dgv.Rows.Count - 1 ' -1 nếu như dgv có thuộc tính AllowUserToAddRows=True'
Dim Com As New SqlCommand("SET DATEFORMAT DMY;Insert Into th_mau10 values(" _
& "'" & dgv.Rows(i).Cells(0).Value & "'," _
& "'" & dgv.Rows(i).Cells(1).Value & "'," _
& "'" & dgv.Rows(i).Cells(2).Value & "'," _
& "'" & dgv.Rows(i).Cells(3).Value & "'" _
& ")", KetNoi)
KetNoi.Open()
Com.ExecuteNonQuery()
KetNoi.Close()
Next
MessageBox.Show("Đã thực hiện xong, chưa biết thành công hay không, hãy kiểm tra lại ^^", "Thong bao")
End Sub
End Class

Kết quả


1 2000-01-15 00:00:00 2000-02-01 00:00:00
2 2000-01-20 00:00:00 2000-02-01 00:00:00
3 2000-01-25 00:00:00 2000-02-01 00:00:00
4 1900-01-01 00:00:00 2000-02-01 00:00:00
5 1900-01-01 00:00:00 1900-01-01 00:00:00

poep
11-01-2011, 10:23
oki. cam on cac bac da nhiet tinh giup do. em lam dc rui