By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,852 Members | 955 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,852 IT Pros & Developers. It's quick & easy.

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

P: n/a
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

Jul 16 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
"Brad Pears" <br***@truenorthloghomes.comschrieb
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

Jul 16 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.