• 0

how to check if datareader is null or not [VB]


Question

hey

how to check if DataReader is null or not in VB.net??

this is my code

   
Function GetBrandID(ByVal BrandName As String) As Integer
	    Dim rdr1 As MySqlDataReader
	    Dim cmd1 As MySqlCommand
	    cmd1 = New MySqlCommand("select BrandID from Brand where Des like'" & BrandName & "%'", conTmp)
	    rdr1 = cmd1.ExecuteReader
	    rdr1.Read()
	    If Not rdr1 Is Nothing Then			  'this doesn't work
		    Dim ID As Integer = rdr1(0)
		    rdr1.Close()
		    Return ID
	    Else
	    End If
  End Function

plz help

7 answers to this question

Recommended Posts

  • 0

Function GetBrandID(ByVal BrandName As String) As Integer
Dim rdr1 As MySqlDataReader
Dim ID As Integer = -1
Dim cmd1 As MySqlCommand
cmd1 = New MySqlCommand("select BrandID from Brand where Des like'" & BrandName & "%'", conTmp) 'I should slap myself for using a LIKE on a query where I only want one row, I should SHOOT myself for not using a procedure...
rdr1 = cmd1.ExecuteReader
If rdr1.HasRows Then
rdr1.Read()
ID = rdr1.Item(0).value.ToInt32
End If

Return ID 'Now returns a value on all code paths; -1 would indicate an error
End Function
[/CODE]

  • 0
  On 26/01/2012 at 18:22, paxa said:

why not try this:

if (rdr1.hasrows)

or try this:

rdr.read()

any of them should do the trick, so just adjust your code accordingly

didnt knew read() is a function and it returns a Boolean value (must read MSDN documentation :ermm: ) . it works like a charm .thnx :punk:

  • 0

If you are only returning one value in your query, you can use ExecuteScalar instead of using a data reader. Also, you should use a parameterized query. If your "BrandName" variable has a quote in it the query will cause an unhandled exception. You can code something like this:



Dim objTemp As Object
Dim cmd As New SqlCommand

With cmd
.Connection = conTmp
.CommandText = "SELECT BrandID FROM Brand WHERE Des LIKE @parm1"
.Parameters.Add("@parm1lDbType.NVarChar).Value = BrandName & "%"
objTemp = .ExecuteScalar
End With

If IsDBNull(objTemp) OrElse objTemp Is Nothing OrElse IsNumeric(objTemp) = False Then
Return -1
Else
Return objTemp
End If

[/CODE]

  • Like 1
  • 0
  On 27/01/2012 at 20:34, apple jacks48 said:

If you are only returning one value in your query, you can use ExecuteScalar instead of using a data reader. Also, you should use a parameterized query. If your "BrandName" variable has a quote in it the query will cause an unhandled exception. You can code something like this:



Dim objTemp As Object
Dim cmd As New SqlCommand

With cmd
.Connection = conTmp
.CommandText = "SELECT BrandID FROM Brand WHERE Des LIKE @parm1"
.Parameters.Add("@parm1lDbType.NVarChar).Value = BrandName & "%"
objTemp = .ExecuteScalar
End With

If IsDBNull(objTemp) OrElse objTemp Is Nothing OrElse IsNumeric(objTemp) = False Then
Return -1
Else
Return objTemp
End If

[/CODE]

didnt knew that. thnx

This topic is now closed to further replies.
  • Posts

    • Burrrrn. Bought COD WWII last month when it was on sale for PC. Oh well. Excellent game tho, and the PC version plays/looks amazing (and has it's own PC achievements). ...wondering if this is a lesson on waiting on sales. ...also hoping Rise of the Tomb Raider has it's own PC Achievements
    • Google Chrome 137.0.7151.120 (offline installer) by Razvan Serea The web browser is arguably the most important piece of software on your computer. You spend much of your time online inside a browser: when you search, chat, email, shop, bank, read the news, and watch videos online, you often do all this using a browser. Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier. Use one box for everything--type in the address bar and get suggestions for both search and Web pages. Thumbnails of your top sites let you access your favorite pages instantly with lightning speed from any new tab. Desktop shortcuts allow you to launch your favorite Web apps straight from your desktop. Chrome has many useful features built in, including automatic full-page translation and access to thousands of apps, extensions, and themes from the Chrome Web Store. Google Chrome is one of the best solutions for Internet browsing giving you high level of security, speed and great features. Important to know! The offline installer links do not include the automatic update feature. Google Chrome 137.0.7151.120 changelog: [$7000][420697404] High CVE-2025-6191: Integer overflow in V8. Reported by Shaheen Fazim on 2025-05-27 [$4000][421471016] High CVE-2025-6192: Use after free in Profiler. Reported by Chaoyuan Peng (@ret2happy) on 2025-05-31 [425443272] Various fixes from internal audits, fuzzing and other initiatives Download web installer: Google Chrome Web 32-bit | Google Chrome 64-bit | Freeware Download: Google Chrome Offline Installer 64-bit | 128.0 MB Download: Google Chrome Offline Installer 32-bit | 115.0 MB Download page: Google Chrome Portable Download: Google Chrome MSI Installers for Windows (automatic update) View: Chrome Website | Release Notes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • -Drop the art style, it's cool but doesn't fit the franchise at all. -Make it a gritty single player game, like Halo -Include deathmatch and all that stuff, extraction can be a separate mode If they don't do that, it's dead on arrival IMO.
  • Recent Achievements

    • One Month Later
      Custom Greek Shirts earned a badge
      One Month Later
    • Week One Done
      Custom Greek Shirts earned a badge
      Week One Done
    • One Year In
      Custom Greek Shirts earned a badge
      One Year In
    • Week One Done
      topantidetectbrowser earned a badge
      Week One Done
    • Explorer
      Jdoe25 went up a rank
      Explorer
  • Popular Contributors

    1. 1
      +primortal
      672
    2. 2
      ATLien_0
      281
    3. 3
      Michael Scrip
      223
    4. 4
      +FloatingFatMan
      190
    5. 5
      Steven P.
      146
  • Tell a friend

    Love Neowin? Tell a friend!