Undefined Value

  • Thread starter Thread starter David N
  • Start date Start date
D

David N

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????
 
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" <[email protected]>
| 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: <[email protected]>
| 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!tk2msftngp13.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????
|
|
|
 
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: <[email protected]>
| MIME-Version: 1.0
| Content-Type: text/plain
| Content-Transfer-Encoding: 7bit
| From: (e-mail address removed) (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: <[email protected]>
| 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" <[email protected]>
| | 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: <[email protected]>
| | 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!tk2msftngp13.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????
| |
| |
| |
|
|
 
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)
......
....
 
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" <[email protected]>
| References: <[email protected]>
<[email protected]>
<[email protected]>
| 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: <[email protected]>
| 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!TK2MSFTNGP12.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)
| .....
| ...
|
|
|
|
|
| | > 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: <[email protected]>
| > | MIME-Version: 1.0
| > | Content-Type: text/plain
| > | Content-Transfer-Encoding: 7bit
| > | From: (e-mail address removed) (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: <[email protected]>
| > | 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" <[email protected]>
| > | | 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: <[email protected]>
| > | | 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!tk2msftngp13.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????
| > | |
| > | |
| > | |
| > |
| > |
| >
|
|
|
 
Back
Top