Link to home
Start Free TrialLog in
Avatar of Member_2_1242703
Member_2_1242703

asked on

Tilde in SQL & ASP.NET DataReader

I have a datareader bringing in information and assigning it to a label using the code below. Whenever it runs into a tilde (~) in one of the datasets, it chops it off and everything prior to it. How can I get around this?
Private Sub ReadNext()
        Me.ResetDataReader()
        If CType(Session.Item("reader"), Data.SqlClient.SqlDataReader).Read() Then
            If Not CType(Session.Item("reader"), Data.SqlClient.SqlDataReader)("DESCRIPTION") Is DBNull.Value Then
                Label4.Text = CType(Session.Item("reader"), Data.SqlClient.SqlDataReader)("DESCRIPTION").ToString
            Else
                Label4.Text = ""
            End If
           
            
    Private Sub ResetDataReader()
        Dim myConn As New Data.SqlClient.SqlConnection(myConnString)
        Dim mySelectQuery As String = "SELECT * FROM tblMain"
        myCommand = New Data.SqlClient.SqlCommand(mySelectQuery, myConn)
        myConn.Open()
        myReader = myCommand.ExecuteReader
        Session.Item("reader") = myReader
    End Sub

Open in new window

Avatar of HainKurt
HainKurt
Flag of Canada image

why are you using session here? try this
Private Sub ReadNext()
  ResetDataReader()
end sub                   
            
Private Sub ResetDataReader()
  Dim myConn As New Data.SqlClient.SqlConnection(myConnString)
  Dim mySelectQuery As String = "SELECT * FROM tblMain"
  myCommand = New Data.SqlClient.SqlCommand(mySelectQuery, myConn)
  myConn.Open()
  myReader = myCommand.ExecuteReader

  if myReader.read() then
    If Not myReader("DESCRIPTION") Is DBNull.Value Then
      Label4.Text = CType(Session.Item("reader"), Data.SqlClient.SqlDataReader)("DESCRIPTION").ToString
    Else
      Label4.Text = ""
    End If
  End if
  MyReaded.close()
  myConn.Close()
End Sub

Open in new window

Avatar of Member_2_1242703
Member_2_1242703

ASKER

Yeah you're right I should have done it that way but either way that does not solve the problem I was asking about. It returns the exact same value either way. For example...

L/NUT,HEX M6,M6X1.0  ~  M6X1.0
returns
M6X1.0
try this:
Private Sub ReadNext() 
  ResetDataReader() 
end sub                    
             
Private Sub ResetDataReader() 
  Dim myConn As New Data.SqlClient.SqlConnection(myConnString) 
  Dim mySelectQuery As String = "SELECT m.*, replace(DESCRIPTION,'~','?') FROM tblMain m" 
  myCommand = New Data.SqlClient.SqlCommand(mySelectQuery, myConn) 
  myConn.Open() 
  myReader = myCommand.ExecuteReader 
 
  if myReader.read() then 
    If Not myReader("DESCRIPTION") Is DBNull.Value Then 
      Label4.Text = myReader("DESCRIPTION").ToString.replace('?','~') 
    Else 
      Label4.Text = "" 
    End If 
  End if 
  MyReaded.close() 
  myConn.Close() 
End Sub

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Todd Gerbert
Todd Gerbert
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial