469,631 Members | 1,310 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,631 developers. It's quick & easy.

Undefined Value


Hi All,

What is a best way to handle an undefined value object class that returned
from a function. I have a function that call the ADO.NET ExecuteScalar()
function and returns the object to the calling function as follow:
public object FunctionA()
{
object RetVal;
... some preparation code here
RetVal = ExecuteScalar(); // This one execute a stored procedure
which can return an empty column

Return RetVal;
}
public int FunctionB()
{
object SingleValue;
... some code here
SingleValue = FunctionA();
}

The call to the FunctionA works only if the ExecuteScalar() returns a value.
If the stored procedure returns an empty column value, and then the call to
the FunctionA() breaks out with an exception...

Any thoughts????
Nov 15 '05 #1
6 1914
Hi David,

IDbCommand.ExecuteScalar Method returns the first column of the first row
in the resultset. If there are no rows returned from your command, a null
reference is returned. If the first column of the first row is a (Null)
value, a System.DBNull object is returned. So, if you want to determine if
any object is returned from the ExecuteScalar() method, you can try the
following codes:

command.Connection.Open();
Object o = com.ExecuteScalar();
com.Connection.Close();
if(o != null && o != System.DBNull.Value)
return (Int32)o;
else
return null;

Does this answer your question? If anything is unclear, please feel free to
reply to the post.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: " David N" <dq*****@netiq.com>
| Subject: Undefined Value
| Date: Sun, 5 Oct 2003 15:40:25 -0700
| Lines: 37
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <OW**************@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:189108
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
|
| Hi All,
|
| What is a best way to handle an undefined value object class that returned
| from a function. I have a function that call the ADO.NET ExecuteScalar()
| function and returns the object to the calling function as follow:
|
|
| public object FunctionA()
| {
| object RetVal;
| ... some preparation code here
|
|
| RetVal = ExecuteScalar(); // This one execute a stored procedure
| which can return an empty column
|
| Return RetVal;
| }
|
|
| public int FunctionB()
| {
| object SingleValue;
| ... some code here
|
|
| SingleValue = FunctionA();
| }
|
| The call to the FunctionA works only if the ExecuteScalar() returns a
value.
| If the stored procedure returns an empty column value, and then the call
to
| the FunctionA() breaks out with an exception...
|
| Any thoughts????
|
|
|

Nov 15 '05 #2
Hi David,

IDbCommand.ExecuteScalar Method returns the first column of the first row
in the resultset. If there are no rows returned from your command, a null
reference is returned. If the first column of the first row is a (Null)
value, a System.DBNull object is returned. So, if you want to determine if
any object is returned from the ExecuteScalar() method, you can try the
following codes:

command.Connection.Open();
Object o = com.ExecuteScalar();
com.Connection.Close();
if(o != null && o != System.DBNull.Value)
return (Int32)o;
else
return null;

Does this answer your question? If anything is unclear, please feel free to
reply to the post.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: " David N" <dq*****@netiq.com>
| Subject: Undefined Value
| Date: Sun, 5 Oct 2003 15:40:25 -0700
| Lines: 37
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <OW**************@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:189108
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
|
| Hi All,
|
| What is a best way to handle an undefined value object class that returned
| from a function. I have a function that call the ADO.NET ExecuteScalar()
| function and returns the object to the calling function as follow:
|
|
| public object FunctionA()
| {
| object RetVal;
| ... some preparation code here
|
|
| RetVal = ExecuteScalar(); // This one execute a stored procedure
| which can return an empty column
|
| Return RetVal;
| }
|
|
| public int FunctionB()
| {
| object SingleValue;
| ... some code here
|
|
| SingleValue = FunctionA();
| }
|
| The call to the FunctionA works only if the ExecuteScalar() returns a
value.
| If the stored procedure returns an empty column value, and then the call
to
| the FunctionA() breaks out with an exception...
|
| Any thoughts????
|
|
|

Nov 15 '05 #3
Hi David,

I'm sorry that I made a mistake in my former post. If the return value of
the function is a Int32 type. We cannot use

else
return null;

Because Int32 is a value ype.

Sorry for my mistake.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| X-Tomcat-ID: 46502818
| References: <OW**************@tk2msftngp13.phx.gbl>
| MIME-Version: 1.0
| Content-Type: text/plain
| Content-Transfer-Encoding: 7bit
| From: v-****@online.microsoft.com (Kevin Yu)
| Organization: Microsoft
| Date: Mon, 06 Oct 2003 02:47:42 GMT
| Subject: RE: Undefined Value
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| Message-ID: <6C*************@cpmsftngxa06.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| Lines: 60
| Path: cpmsftngxa06.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:189132
| NNTP-Posting-Host: TOMCATIMPORT1 10.201.218.122
|
| Hi David,
|
| IDbCommand.ExecuteScalar Method returns the first column of the first row
| in the resultset. If there are no rows returned from your command, a null
| reference is returned. If the first column of the first row is a (Null)
| value, a System.DBNull object is returned. So, if you want to determine
if
| any object is returned from the ExecuteScalar() method, you can try the
| following codes:
|
| command.Connection.Open();
| Object o = com.ExecuteScalar();
| com.Connection.Close();
| if(o != null && o != System.DBNull.Value)
| return (Int32)o;
| else
| return null;
|
| Does this answer your question? If anything is unclear, please feel free
to
| reply to the post.
|
| Kevin Yu
| =======
| "This posting is provided "AS IS" with no warranties, and confers no
| rights."
|
| --------------------
| | From: " David N" <dq*****@netiq.com>
| | Subject: Undefined Value
| | Date: Sun, 5 Oct 2003 15:40:25 -0700
| | Lines: 37
| | X-Priority: 3
| | X-MSMail-Priority: Normal
| | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| | Message-ID: <OW**************@tk2msftngp13.phx.gbl>
| | Newsgroups: microsoft.public.dotnet.languages.csharp
| | NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| | Xref: cpmsftngxa06.phx.gbl
microsoft.public.dotnet.languages.csharp:189108
| | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| |
| |
| | Hi All,
| |
| | What is a best way to handle an undefined value object class that
returned
| | from a function. I have a function that call the ADO.NET
ExecuteScalar()
| | function and returns the object to the calling function as follow:
| |
| |
| | public object FunctionA()
| | {
| | object RetVal;
| | ... some preparation code here
| |
| |
| | RetVal = ExecuteScalar(); // This one execute a stored procedure
| | which can return an empty column
| |
| | Return RetVal;
| | }
| |
| |
| | public int FunctionB()
| | {
| | object SingleValue;
| | ... some code here
| |
| |
| | SingleValue = FunctionA();
| | }
| |
| | The call to the FunctionA works only if the ExecuteScalar() returns a
| value.
| | If the stored procedure returns an empty column value, and then the
call
| to
| | the FunctionA() breaks out with an exception...
| |
| | Any thoughts????
| |
| |
| |
|
|

Nov 15 '05 #4
Hi David,

I'm sorry that I made a mistake in my former post. If the return value of
the function is a Int32 type. We cannot use

else
return null;

Because Int32 is a value ype.

Sorry for my mistake.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| X-Tomcat-ID: 46502818
| References: <OW**************@tk2msftngp13.phx.gbl>
| MIME-Version: 1.0
| Content-Type: text/plain
| Content-Transfer-Encoding: 7bit
| From: v-****@online.microsoft.com (Kevin Yu)
| Organization: Microsoft
| Date: Mon, 06 Oct 2003 02:47:42 GMT
| Subject: RE: Undefined Value
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| Message-ID: <6C*************@cpmsftngxa06.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| Lines: 60
| Path: cpmsftngxa06.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:189132
| NNTP-Posting-Host: TOMCATIMPORT1 10.201.218.122
|
| Hi David,
|
| IDbCommand.ExecuteScalar Method returns the first column of the first row
| in the resultset. If there are no rows returned from your command, a null
| reference is returned. If the first column of the first row is a (Null)
| value, a System.DBNull object is returned. So, if you want to determine
if
| any object is returned from the ExecuteScalar() method, you can try the
| following codes:
|
| command.Connection.Open();
| Object o = com.ExecuteScalar();
| com.Connection.Close();
| if(o != null && o != System.DBNull.Value)
| return (Int32)o;
| else
| return null;
|
| Does this answer your question? If anything is unclear, please feel free
to
| reply to the post.
|
| Kevin Yu
| =======
| "This posting is provided "AS IS" with no warranties, and confers no
| rights."
|
| --------------------
| | From: " David N" <dq*****@netiq.com>
| | Subject: Undefined Value
| | Date: Sun, 5 Oct 2003 15:40:25 -0700
| | Lines: 37
| | X-Priority: 3
| | X-MSMail-Priority: Normal
| | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| | Message-ID: <OW**************@tk2msftngp13.phx.gbl>
| | Newsgroups: microsoft.public.dotnet.languages.csharp
| | NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| | Xref: cpmsftngxa06.phx.gbl
microsoft.public.dotnet.languages.csharp:189108
| | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| |
| |
| | Hi All,
| |
| | What is a best way to handle an undefined value object class that
returned
| | from a function. I have a function that call the ADO.NET
ExecuteScalar()
| | function and returns the object to the calling function as follow:
| |
| |
| | public object FunctionA()
| | {
| | object RetVal;
| | ... some preparation code here
| |
| |
| | RetVal = ExecuteScalar(); // This one execute a stored procedure
| | which can return an empty column
| |
| | Return RetVal;
| | }
| |
| |
| | public int FunctionB()
| | {
| | object SingleValue;
| | ... some code here
| |
| |
| | SingleValue = FunctionA();
| | }
| |
| | The call to the FunctionA works only if the ExecuteScalar() returns a
| value.
| | If the stored procedure returns an empty column value, and then the
call
| to
| | the FunctionA() breaks out with an exception...
| |
| | Any thoughts????
| |
| |
| |
|
|

Nov 15 '05 #5
Yeap! when the function returns a null object, the caller will have
exception error without an opportunity to examine the object. That is
exactly what I have in FunctionA(), which returns a null object class to
FunctionB() - the caller. The call to

SingleValue = FunctionA(); generates the exception error.
// Have no chance to examine the SingleValue
if(SingleValue == dbnull)
......
....

"Kevin Yu" <v-****@online.microsoft.com> wrote in message
news:A8**************@cpmsftngxa06.phx.gbl...
Hi David,

I'm sorry that I made a mistake in my former post. If the return value of
the function is a Int32 type. We cannot use

else
return null;

Because Int32 is a value ype.

Sorry for my mistake.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| X-Tomcat-ID: 46502818
| References: <OW**************@tk2msftngp13.phx.gbl>
| MIME-Version: 1.0
| Content-Type: text/plain
| Content-Transfer-Encoding: 7bit
| From: v-****@online.microsoft.com (Kevin Yu)
| Organization: Microsoft
| Date: Mon, 06 Oct 2003 02:47:42 GMT
| Subject: RE: Undefined Value
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| Message-ID: <6C*************@cpmsftngxa06.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| Lines: 60
| Path: cpmsftngxa06.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:189132 | NNTP-Posting-Host: TOMCATIMPORT1 10.201.218.122
|
| Hi David,
|
| IDbCommand.ExecuteScalar Method returns the first column of the first row | in the resultset. If there are no rows returned from your command, a null | reference is returned. If the first column of the first row is a (Null)
| value, a System.DBNull object is returned. So, if you want to determine
if
| any object is returned from the ExecuteScalar() method, you can try the
| following codes:
|
| command.Connection.Open();
| Object o = com.ExecuteScalar();
| com.Connection.Close();
| if(o != null && o != System.DBNull.Value)
| return (Int32)o;
| else
| return null;
|
| Does this answer your question? If anything is unclear, please feel free
to
| reply to the post.
|
| Kevin Yu
| =======
| "This posting is provided "AS IS" with no warranties, and confers no
| rights."
|
| --------------------
| | From: " David N" <dq*****@netiq.com>
| | Subject: Undefined Value
| | Date: Sun, 5 Oct 2003 15:40:25 -0700
| | Lines: 37
| | X-Priority: 3
| | X-MSMail-Priority: Normal
| | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| | Message-ID: <OW**************@tk2msftngp13.phx.gbl>
| | Newsgroups: microsoft.public.dotnet.languages.csharp
| | NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| | Xref: cpmsftngxa06.phx.gbl
microsoft.public.dotnet.languages.csharp:189108
| | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| |
| |
| | Hi All,
| |
| | What is a best way to handle an undefined value object class that
returned
| | from a function. I have a function that call the ADO.NET
ExecuteScalar()
| | function and returns the object to the calling function as follow:
| |
| |
| | public object FunctionA()
| | {
| | object RetVal;
| | ... some preparation code here
| |
| |
| | RetVal = ExecuteScalar(); // This one execute a stored procedure
| | which can return an empty column
| |
| | Return RetVal;
| | }
| |
| |
| | public int FunctionB()
| | {
| | object SingleValue;
| | ... some code here
| |
| |
| | SingleValue = FunctionA();
| | }
| |
| | The call to the FunctionA works only if the ExecuteScalar() returns a
| value.
| | If the stored procedure returns an empty column value, and then the
call
| to
| | the FunctionA() breaks out with an exception...
| |
| | Any thoughts????
| |
| |
| |
|
|

Nov 15 '05 #6
Hi David,

Did you mean that the exception was thrown from FunctionA()? If so, you
have to use a Try block in FunctionA().
Please try to write FunctionA() as the code snippet I wrote in my last
post, and put it in a Try block. If any exception is thrown, it will be
caught in the Catch block.

Try
command.Connection.Open();
Object o = com.ExecuteScalar();
com.Connection.Close();
if(o != null && o != System.DBNull.Value)
return (Int32)o;
else
return 0;
Catch
return 0;

In my code 0 is the error code. No exception will be thrown out of
FunctionA().

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: " David N" <dq*****@netiq.com>
| References: <OW**************@tk2msftngp13.phx.gbl>
<6C*************@cpmsftngxa06.phx.gbl>
<A8**************@cpmsftngxa06.phx.gbl>
| Subject: Re: Undefined Value
| Date: Mon, 6 Oct 2003 09:41:58 -0700
| Lines: 149
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <O0**************@TK2MSFTNGP12.phx.gbl>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP12.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:189299
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| Yeap! when the function returns a null object, the caller will have
| exception error without an opportunity to examine the object. That is
| exactly what I have in FunctionA(), which returns a null object class to
| FunctionB() - the caller. The call to
|
| SingleValue = FunctionA(); generates the exception error.
|
|
| // Have no chance to examine the SingleValue
| if(SingleValue == dbnull)
| .....
| ...
|
|
|
|
|
| "Kevin Yu" <v-****@online.microsoft.com> wrote in message
| news:A8**************@cpmsftngxa06.phx.gbl...
| > Hi David,
| >
| > I'm sorry that I made a mistake in my former post. If the return value
of
| > the function is a Int32 type. We cannot use
| >
| > else
| > return null;
| >
| > Because Int32 is a value ype.
| >
| > Sorry for my mistake.
| >
| > Kevin Yu
| > =======
| > "This posting is provided "AS IS" with no warranties, and confers no
| > rights."
| >
| > --------------------
| > | X-Tomcat-ID: 46502818
| > | References: <OW**************@tk2msftngp13.phx.gbl>
| > | MIME-Version: 1.0
| > | Content-Type: text/plain
| > | Content-Transfer-Encoding: 7bit
| > | From: v-****@online.microsoft.com (Kevin Yu)
| > | Organization: Microsoft
| > | Date: Mon, 06 Oct 2003 02:47:42 GMT
| > | Subject: RE: Undefined Value
| > | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > | Message-ID: <6C*************@cpmsftngxa06.phx.gbl>
| > | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | Lines: 60
| > | Path: cpmsftngxa06.phx.gbl
| > | Xref: cpmsftngxa06.phx.gbl
| microsoft.public.dotnet.languages.csharp:189132
| > | NNTP-Posting-Host: TOMCATIMPORT1 10.201.218.122
| > |
| > | Hi David,
| > |
| > | IDbCommand.ExecuteScalar Method returns the first column of the first
| row
| > | in the resultset. If there are no rows returned from your command, a
| null
| > | reference is returned. If the first column of the first row is a
(Null)
| > | value, a System.DBNull object is returned. So, if you want to
determine
| > if
| > | any object is returned from the ExecuteScalar() method, you can try
the
| > | following codes:
| > |
| > | command.Connection.Open();
| > | Object o = com.ExecuteScalar();
| > | com.Connection.Close();
| > | if(o != null && o != System.DBNull.Value)
| > | return (Int32)o;
| > | else
| > | return null;
| > |
| > | Does this answer your question? If anything is unclear, please feel
free
| > to
| > | reply to the post.
| > |
| > | Kevin Yu
| > | =======
| > | "This posting is provided "AS IS" with no warranties, and confers no
| > | rights."
| > |
| > | --------------------
| > | | From: " David N" <dq*****@netiq.com>
| > | | Subject: Undefined Value
| > | | Date: Sun, 5 Oct 2003 15:40:25 -0700
| > | | Lines: 37
| > | | X-Priority: 3
| > | | X-MSMail-Priority: Normal
| > | | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | | Message-ID: <OW**************@tk2msftngp13.phx.gbl>
| > | | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | | NNTP-Posting-Host: pat-50.bel.netiq.com 65.219.170.50
| > | | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| > | | Xref: cpmsftngxa06.phx.gbl
| > microsoft.public.dotnet.languages.csharp:189108
| > | | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > | |
| > | |
| > | | Hi All,
| > | |
| > | | What is a best way to handle an undefined value object class that
| > returned
| > | | from a function. I have a function that call the ADO.NET
| > ExecuteScalar()
| > | | function and returns the object to the calling function as follow:
| > | |
| > | |
| > | | public object FunctionA()
| > | | {
| > | | object RetVal;
| > | | ... some preparation code here
| > | |
| > | |
| > | | RetVal = ExecuteScalar(); // This one execute a stored
procedure
| > | | which can return an empty column
| > | |
| > | | Return RetVal;
| > | | }
| > | |
| > | |
| > | | public int FunctionB()
| > | | {
| > | | object SingleValue;
| > | | ... some code here
| > | |
| > | |
| > | | SingleValue = FunctionA();
| > | | }
| > | |
| > | | The call to the FunctionA works only if the ExecuteScalar() returns
a
| > | value.
| > | | If the stored procedure returns an empty column value, and then the
| > call
| > | to
| > | | the FunctionA() breaks out with an exception...
| > | |
| > | | Any thoughts????
| > | |
| > | |
| > | |
| > |
| > |
| >
|
|
|

Nov 15 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Gene Mat | last post: by
2 posts views Thread by Guinness Mann | last post: by
3 posts views Thread by Mark Sullivan | last post: by
5 posts views Thread by Steven Prasil | last post: by
3 posts views Thread by Girish | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.