Bug #68924 Null Items cause further data not to be returned
Submitted: 10 Apr 2013 21:40 Modified: 27 May 2013 20:52
Reporter: O'Brien Donal Email Updates:
Status: Not a Bug Impact on me:
None 
Category:Connector / NET Severity:S2 (Serious)
Version:6.6.4.0 OS:Windows (Win 7 Pro, Vis Studio 2012)
Assigned to: Roberto Ezequiel Garcia Ballesteros CPU Architecture:Any

[10 Apr 2013 21:40] O'Brien Donal
Description:
VB in Visual Studio 2012

Query of format
Select Item1,Item2,Item3,Item4,Item5,Item6 From Table 
with a WHERE clause which will only return 1 row 

If, for example the returned record has Item4 = NULL
Item5 and Item6 are not returned, 
If Item2 = NULL, Items 3 to 6 are not returned,

Am I doing something wrong ?

Actual code for this is below

How to repeat:
Actual Code

Private Sub GetRecord(rownum As Integer)
        
        Try
            Dim query As String = "SELECT CtrlType, Search, Alpha2, Alpha1, Numeric1, Numeric2"
            query = query + " FROM control WHERE CtlFileNo = " + rownum.ToString

            

            Dim connection As New MySqlConnection(connStr)
            connection.Open()

            Dim sqlCommand = New MySqlCommand
            sqlCommand.CommandText = query
            sqlCommand.Connection = connection
            Dim sqlReader As MySqlDataReader
            sqlReader = sqlCommand.ExecuteReader
            sqlReader.Read()
            

            ComboBoxType1.SelectedIndex = sqlReader.GetInt32(0) - 1
            TextBoxSearch.Text = sqlReader.GetString(1)
            TextBoxDescrip.Text = sqlReader.GetString(2)
            TextBoxCode.Text = sqlReader.GetString(3)
            MaskedTextBoxNum1.Text = sqlReader.GetDecimal(4)
            MaskedTextBoxNum2.Text = sqlReader.GetDecimal(5)
           
            sqlReader.Close()
            connection.Close()

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
End Sub
[27 May 2013 20:52] Roberto Ezequiel Garcia Ballesteros
Hi,

I changed the status to "Not a bug" since the behavior is as designed. When you try to read a database null value, it throws an System.Data.SqlTypes.SqlNullValueException. 
I suggest to use MySqlDataReader.IsDBNull() to check for null values before use GetString().

You can find more information about this in the following link (please check Remark section): 

http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.DATA.SQLCL...

The library link is for SqlDataReader but it works the same way in MySqlDataReader.

Regards.