58 votes

Comment pouvez-vous convertir "tinyint" de t-sql en entier en c #?

J'ai un tinyint colonne dans la base de données et je voudrais le convertir en Int32 d'un SqlDataReader.

Comment dois-je faire?

Edit #1

J'ai récemment eu à faire.

int a = dataReader.GetByte(dr.GetOrdinal("ColumnName"));

#En Plus de Répondre

Type de Données SQL Server Mappages

bigint           - GetInt64  
binary           - GetBytes  
int              - GetInt32  
money            - GetDecimal  
rowversion       - GetBytes  
smallint         - GetInt16  
tinyint          - GetByte  
uniqueidentifier - GetGuid   
...

Pour plus d'informations, visitez - Type de Données SQL Server Mappages

87voto

Jon Skeet Points 692016

Que faut-il normalement revenir comme octet? Si oui, il suffit de faire un unbox et puis un convertir:

(int)(byte) reader["column"];

ou tout simplement laissez la conversion se produisent naturellement:

int x = (byte) reader["column"];

ou faire la même chose avec le fortement typé méthodes:

int x = reader.GetByte(column);

Ajuster ce pour sbyte ou short ou quoi que si je me trompe à ce sujet mappage byte. Vous pourriez faire la conversion au côté de SQL Server, mais je serais personnellement de le faire côté client au lieu de cela, et de garder le SQL plus simple.

0voto

Rajesh Abraham Points 58
int RetValue;
RetValue = (int)(byte)dt.Rows[A][B]  // A = RowNo , B = 'tinyint' Column Name.

-2voto

SqlDataReader.GetInt16 est le moyen de l'obtenir à partir d'un datareader.

-5voto

Shamika Points 265

Je pense que vous devriez pouvoir utiliser SqlDataReader.GetInt32.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X