SlideShare a Scribd company logo
1 of 3
Download to read offline
Difference between null and System.DBNull.Value

      S.No     null                                DBNull


      1        Conceptual Difference:              Conceptual Difference:
               The keyword null represents         The class System.DbNull
               an invalid reference.               represents a nonexistent value in a
                                                   database field.

      2        What is the purpose of null         What is the purpose of DBNull
               keyword ?                           class ?
               NULL is used to check if a          DBNULL is used to check if a
               whole record is not found in        certain field in a database is null.
               the database.

      3        Is it a Value / Reference /         Is it a Value / Reference /
               Nullable type ?                     Nullable type ?
               null is the default value of        DBNull does not match the type of
               reference-type variables.           a nullable value type, a reference
               Ordinary value types cannot be      type, or a value type, and therefore
               null.                               is not directly assignable.

                                                   Please look at: Handle null, then
                                                   DBNull to avoid
                                                   InvalidCastException

                                                   Reason:
                                                   Of DBNull class only one instance
                                                   can exist as it a singleton class.
                                                   Sole instance is DBNull.Value.

Handle null, then DBNull to avoid InvalidCastException:

For instance, sometimes in code you will see items in a data row being used without
checking for null first. When the underlying field is not null, this is OK, but if a null is
available, the following code will not work:

Example-1

Decimal amount = (Decimal)row["AmountValue"]; //returned value is DBNull

Because DBNull is not the same type, an InvalidCastException occurs. Rather, a null
check has to be performed. The safe alternative to this is the following:

Example-2

Decimal amount = 0;
If (!row.IsNull("AmountValue"))
  amount = (Decimal)row["AmountValue"];

If you want to set a row's value, you can do something like below. The row takes an
instance of type object, and therefore can be assigned DBNull:

Example-3

If (amountValue > 0)
  row["AmountValue"] = amountValue;
Else
  row["AmountValue"] = DBNull.Value;

The value property returns the actual instance of DBNull (a static property). Sometimes, a
helper routine would be good to handle this conversion for you, reducing the amount to a
total of one line instead of four. That may not seem like much, but a table with thirty
columns will make this much coding a chore.

Checking null and DBNull values

How to check for null value ?

   1. Create the variable. A variable must be declared before using it. The code below
allocates memory and declares the variable for use.
   string myNullVar = null;
   The code uses the "null" value assignment for the new variable.
   2. Check if the variable is null. The code below checks if the variable is null. If it is null,
the code assigns it a color value.
   if(myNullVar == null) {
   myNullVar = "purple";
   }

   3.Check if the variable is not null. In some cases, you may wan to reassign the variable
back to null. The following code checks if the variable is not null, and assigns it a null
value.
  if(myNullVar != null) {
  myNullVar = null;
  }

How to check for DBNull values ?

   4. Declare a variable. Just like section 1, to check for DBNull, a variable needs to be
declared. However, the variable is assigned the DBNull value.
   string myNullVar = System.DBNull;
   5. Use the "Equals()" method from the string class to check for the DBNull value. The
code below checks for this value and assigns myNullVar a color.
   if (myNullVar.Equals(System.DBNull.Value)) {
   myNullVar = "purple";
   }
   6.Evaluate if the variable is not null. Similar to section one, you may want to check if the
variable is not null to reassign it back to DBNull. The "!" character evaluates to "not" in the
following example.
   if(!myNullValue.Equals(System.DBNull.Value)) {
   myNullValue = System.DBNull;
   }
Note:
 However note that neither checking null of nor DBNull.value will work if the index is out of
range. If we check for an index or a column that doesn't exist, it will throw an index out of
range exception.

References:
http://stackoverflow.com/questions/4958379/what-is-the-difference-between-null-and-
system-dbnull-value

http://www.dotnetspider.com/forum/315649-Difference-between-NULL-DBNULL.aspx

http://aspalliance.com/1460_More_InDepth_About_Nulls_And_DBNull.4

http://msdn.microsoft.com/en-us/library/system.dbnull.value.aspx

http://msdn.microsoft.com/en-us/library/edakx9da.aspx

http://www.ehow.com/how_5158769_check-null-value-c.html

http://dotnetanalysis.blogspot.in/2012/07/c-difference-between-dbnullvalue-and.html

And, further updates on difference between questions and answers, please visit my
blog @ http://onlydifferencefaqs.blogspot.in/

More Related Content

Viewers also liked (6)

Difference between sql server 2008 and sql server 2012
Difference between sql server 2008 and sql server 2012Difference between sql server 2008 and sql server 2012
Difference between sql server 2008 and sql server 2012
 
Higiene en la adolecencia mujeres
Higiene en la adolecencia mujeresHigiene en la adolecencia mujeres
Higiene en la adolecencia mujeres
 
Asset Management Abstract
Asset Management AbstractAsset Management Abstract
Asset Management Abstract
 
Design patterns difference between interview questions
Design patterns   difference between interview questionsDesign patterns   difference between interview questions
Design patterns difference between interview questions
 
Motivation theory
Motivation theoryMotivation theory
Motivation theory
 
Break Even Analysis
Break Even AnalysisBreak Even Analysis
Break Even Analysis
 

More from Umar Ali

More from Umar Ali (20)

Difference between wcf and asp.net web api
Difference between wcf and asp.net web apiDifference between wcf and asp.net web api
Difference between wcf and asp.net web api
 
Difference between ActionResult() and ViewResult()
Difference between ActionResult() and ViewResult()Difference between ActionResult() and ViewResult()
Difference between ActionResult() and ViewResult()
 
Difference between asp.net mvc 3 and asp.net mvc 4
Difference between asp.net mvc 3 and asp.net mvc 4Difference between asp.net mvc 3 and asp.net mvc 4
Difference between asp.net mvc 3 and asp.net mvc 4
 
Difference between asp.net web api and asp.net mvc
Difference between asp.net web api and asp.net mvcDifference between asp.net web api and asp.net mvc
Difference between asp.net web api and asp.net mvc
 
Difference between asp.net web forms and asp.net mvc
Difference between asp.net web forms and asp.net mvcDifference between asp.net web forms and asp.net mvc
Difference between asp.net web forms and asp.net mvc
 
ASP.NET MVC difference between questions list 1
ASP.NET MVC difference between questions list 1ASP.NET MVC difference between questions list 1
ASP.NET MVC difference between questions list 1
 
Link checkers 1
Link checkers 1Link checkers 1
Link checkers 1
 
Affiliate Networks Sites-1
Affiliate Networks Sites-1Affiliate Networks Sites-1
Affiliate Networks Sites-1
 
Technical Video Training Sites- 1
Technical Video Training Sites- 1Technical Video Training Sites- 1
Technical Video Training Sites- 1
 
US News Sites- 1
US News Sites- 1 US News Sites- 1
US News Sites- 1
 
How to create user friendly file hosting link sites
How to create user friendly file hosting link sitesHow to create user friendly file hosting link sites
How to create user friendly file hosting link sites
 
Weak hadiths in tamil
Weak hadiths in tamilWeak hadiths in tamil
Weak hadiths in tamil
 
Bulughul Maram in tamil
Bulughul Maram in tamilBulughul Maram in tamil
Bulughul Maram in tamil
 
Asp.net website usage and job trends
Asp.net website usage and job trendsAsp.net website usage and job trends
Asp.net website usage and job trends
 
Indian news sites- 1
Indian news sites- 1 Indian news sites- 1
Indian news sites- 1
 
Photo sharing sites- 1
Photo sharing sites- 1 Photo sharing sites- 1
Photo sharing sites- 1
 
File hosting search engines
File hosting search enginesFile hosting search engines
File hosting search engines
 
Ajax difference faqs compiled- 1
Ajax difference  faqs compiled- 1Ajax difference  faqs compiled- 1
Ajax difference faqs compiled- 1
 
ADO.NET difference faqs compiled- 1
ADO.NET difference  faqs compiled- 1ADO.NET difference  faqs compiled- 1
ADO.NET difference faqs compiled- 1
 
.NET Differences List
.NET Differences List.NET Differences List
.NET Differences List
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Difference between null and system.db null.value

  • 1. Difference between null and System.DBNull.Value S.No null DBNull 1 Conceptual Difference: Conceptual Difference: The keyword null represents The class System.DbNull an invalid reference. represents a nonexistent value in a database field. 2 What is the purpose of null What is the purpose of DBNull keyword ? class ? NULL is used to check if a DBNULL is used to check if a whole record is not found in certain field in a database is null. the database. 3 Is it a Value / Reference / Is it a Value / Reference / Nullable type ? Nullable type ? null is the default value of DBNull does not match the type of reference-type variables. a nullable value type, a reference Ordinary value types cannot be type, or a value type, and therefore null. is not directly assignable. Please look at: Handle null, then DBNull to avoid InvalidCastException Reason: Of DBNull class only one instance can exist as it a singleton class. Sole instance is DBNull.Value. Handle null, then DBNull to avoid InvalidCastException: For instance, sometimes in code you will see items in a data row being used without checking for null first. When the underlying field is not null, this is OK, but if a null is available, the following code will not work: Example-1 Decimal amount = (Decimal)row["AmountValue"]; //returned value is DBNull Because DBNull is not the same type, an InvalidCastException occurs. Rather, a null check has to be performed. The safe alternative to this is the following: Example-2 Decimal amount = 0; If (!row.IsNull("AmountValue")) amount = (Decimal)row["AmountValue"]; If you want to set a row's value, you can do something like below. The row takes an
  • 2. instance of type object, and therefore can be assigned DBNull: Example-3 If (amountValue > 0) row["AmountValue"] = amountValue; Else row["AmountValue"] = DBNull.Value; The value property returns the actual instance of DBNull (a static property). Sometimes, a helper routine would be good to handle this conversion for you, reducing the amount to a total of one line instead of four. That may not seem like much, but a table with thirty columns will make this much coding a chore. Checking null and DBNull values How to check for null value ? 1. Create the variable. A variable must be declared before using it. The code below allocates memory and declares the variable for use. string myNullVar = null; The code uses the "null" value assignment for the new variable. 2. Check if the variable is null. The code below checks if the variable is null. If it is null, the code assigns it a color value. if(myNullVar == null) { myNullVar = "purple"; } 3.Check if the variable is not null. In some cases, you may wan to reassign the variable back to null. The following code checks if the variable is not null, and assigns it a null value. if(myNullVar != null) { myNullVar = null; } How to check for DBNull values ? 4. Declare a variable. Just like section 1, to check for DBNull, a variable needs to be declared. However, the variable is assigned the DBNull value. string myNullVar = System.DBNull; 5. Use the "Equals()" method from the string class to check for the DBNull value. The code below checks for this value and assigns myNullVar a color. if (myNullVar.Equals(System.DBNull.Value)) { myNullVar = "purple"; } 6.Evaluate if the variable is not null. Similar to section one, you may want to check if the variable is not null to reassign it back to DBNull. The "!" character evaluates to "not" in the following example. if(!myNullValue.Equals(System.DBNull.Value)) { myNullValue = System.DBNull; }
  • 3. Note: However note that neither checking null of nor DBNull.value will work if the index is out of range. If we check for an index or a column that doesn't exist, it will throw an index out of range exception. References: http://stackoverflow.com/questions/4958379/what-is-the-difference-between-null-and- system-dbnull-value http://www.dotnetspider.com/forum/315649-Difference-between-NULL-DBNULL.aspx http://aspalliance.com/1460_More_InDepth_About_Nulls_And_DBNull.4 http://msdn.microsoft.com/en-us/library/system.dbnull.value.aspx http://msdn.microsoft.com/en-us/library/edakx9da.aspx http://www.ehow.com/how_5158769_check-null-value-c.html http://dotnetanalysis.blogspot.in/2012/07/c-difference-between-dbnullvalue-and.html And, further updates on difference between questions and answers, please visit my blog @ http://onlydifferencefaqs.blogspot.in/