2009-12-17 11 views
55

मेरे पास डेटाबेस में tinyint कॉलम है और मैं के लिए इसे Int32 में परिवर्तित करना चाहता हूं।आप टी-एसक्यूएल के "tinyint" को C# में पूर्णांक में कैसे परिवर्तित कर सकते हैं?

मैं इसके बारे में कैसे जा सकता हूं?

# संपादित करें 1

मैं हाल ही में यह करने के लिए किया था।

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

#In अलावा

एसक्यूएल सर्वर डेटा प्रकार मैपिंग

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

उत्तर करने के लिए और अधिक जानकारी यात्रा के लिए - बाइट - SQL Server Data Type Mappings

उत्तर

79

क्या यह सामान्य रूप से वापस के रूप में आता है? यदि हां, तो सिर्फ एक Unbox परिवर्तन किया और फिर:

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

या सिर्फ रूपांतरण स्वाभाविक रूप से होने दें:

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

या दृढ़ता से टाइप किया तरीकों के साथ भी ऐसा ही:

int x = reader.GetByte(column); 

इसे sbyte या short पर समायोजित करें या यदि भी मैं इसके बारे में गलत हूं तो byte पर मैपिंग करें। आप SQL सर्वर पक्ष में रूपांतरण कर सकते हैं, लेकिन मैं इसे व्यक्तिगत रूप से क्लाइंट साइड पर करता हूं, और SQL को सरल रखता हूं।

+4

नहीं, आप सही हैं। टिनिंट एक बाइट है। –

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

मैं निम्न कार्य एक एसक्यूएल तालिका से कोई tinyint पाने के लिए:

retorno = Convert.ToInt32(dr.GetByte(dr.GetOrdinal("StepStatus"))); 

कहाँ Retorno एक पूर्णांक चर रहा है।

मुझे उम्मीद है कि यह आपकी मदद करेगा।

2

हर समय "एसबीटीई" का उपयोग करें छोटे इंट समस्या को संभालने के लिए

+0

'sbyte' -128 से 127 'tinyint' 0 से 255 - आप इस उत्तर पर पुनर्विचार कर सकते हैं। –

संबंधित मुद्दे