Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    C# InvalidCastOperation in DataReader

    Salve a tutti.
    Premetto che vengo da PHP e sono nuovo in ambiente .NET

    Volevo chiedervi secondo voi cos'ha che non va questo codice:

    codice:
    DataTable Test(OdbcDataReader reader)
    {
    	DataTable table = new DataTable();
    
    	table.Columns.Add("id", typeof(int));
    	
    	while (reader.Read())
    	{
    		DataRow row = dt.NewRow();
    
    		// la seguente riga genera l'eccezione InvalidCastOperation
    		row["id"] = reader.IsDBNull(0) ? 0 : reader.GetInt32(0);
    	}
    	return table;
    }
    Chiaramente "reader" è stato già aperto da una query tipo:
    "SELECT id FROM tabella"
    dove "id" è un campo di tipo int della simbolica tabella "tabella" mysql

    Grazie

  2. #2
    chiedo scusa, piccolo errore: dt.NewRow => table.NewRow ...
    poi mancherebbe l'istruzione table.Rows.Add(row) ma è ininfluente ai fini del problema..

  3. #3
    controlla che row["id"] sia int32. magari è int16

    oppure

    il dato nella colonna 0 non può essere trasformato in int32


    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.