Converting an empty textbox to a null datetime field...

B

Brad Pears

I am using vb.net 2005 and SQL server 2000. In my table I have a date field
of type "smalldatetime". In my vb application, the user may or may not enter
a date value into the appropriate text box. I then want to pass the value of
this text box as a datetime variable to my stored procedure which inserts or
updates the row.

As I mentioned above, the textbox may be left blank - hence I would want to
pass a null to the stored proc. How do I convert from an empty string
(textbox) to a datetime field so as to pass a null value into my stored
procedure?

I know that I could just skip sending this parameter at all and let my
stored procedure do it but I am using a class and I really do not want to
place any real logic in there. I just want to pass what I have - and that
could be a null value if the text box is left empty.

Every time I attempt to set a variable defined as datetime =
cdate(txtdateField.text) or by using Convert.ToDateTime(txtdatefield.text) I
get an error that "Conversion from 'DBNull' to type 'Date' is not valid."

Does anyone have any experience with what I am describing here and if so,
how did you get around it? Basically I just want to convert an empty string
to a null datetime variable!

Thanks, Brad
 
A

Armin Zingler

Brad Pears said:
I am using vb.net 2005 and SQL server 2000. In my table I have a
date field of type "smalldatetime". In my vb application, the user
may or may not enter a date value into the appropriate text box. I
then want to pass the value of this text box as a datetime variable
to my stored procedure which inserts or updates the row.

As I mentioned above, the textbox may be left blank - hence I would
want to pass a null to the stored proc. How do I convert from an
empty string (textbox) to a datetime field so as to pass a null
value into my stored procedure?

I know that I could just skip sending this parameter at all and let
my stored procedure do it but I am using a class and I really do not
want to place any real logic in there. I just want to pass what I
have - and that could be a null value if the text box is left empty.

Every time I attempt to set a variable defined as datetime =
cdate(txtdateField.text) or by using
Convert.ToDateTime(txtdatefield.text) I get an error that
"Conversion from 'DBNull' to type 'Date' is not valid."

Does anyone have any experience with what I am describing here and
if so, how did you get around it? Basically I just want to convert
an empty string to a null datetime variable!


'loading:

If FieldFromDatabase Is DBNull.Value then
txtDatefield.text = string.empty
else
txtDatefield.text = FieldFromDatabase.ToString
end if


'saving (no validation included!):

if txtDateField.text.length = 0 then
'assign DBNull.Value to the destination. If you
'use Parameters with an SQLCommand object, you set
'the parameter's value to DBNull.Value
<destination> = DBNull.Value
else
<Destination> = cdate(txtDateField.text)
end if


Of course, you should put the code into procedures, or, derive your own
Textbox (eg NullableDatetimeTextbox) from the Textbox class that handles all
this.


Armin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top