2010-11-22 6 views
0

I는 데이터 테이블 customerTbl가 나는datatable 열의 바이트 배열을 string으로 변환 하시겠습니까?

foreach (DataRow row in customerTbl.Rows) 
{ 
     string CustomerID = row["Customer ID"].ToString(); 
} 

하지만, 열 고객 ID 리턴 [바이트 위치 로우 단계별. 이것을 어떻게 문자열 (CustomerID)로 변환 할 수 있습니까?

나는

string CustomerID = Convert.ToBase64String(row["Customer ID"]); 

처럼 뭔가를 시도했지만 분명 당신이 올바른 Encoding 객체가 필요 것, 바이트의 인코딩에 따라 사전

+0

왜 처음에는'CustomerId'가'byte []'입니까? – leppie

+0

고객 ID는 어떻게 생겼습니까? 그것은 텍스트입니까? 아니면 그냥 숫자 일 뿐이야? 'Convert.ToBase64String'은 패키지에서 말하는대로 : [base64 string] (http://en.wikipedia.org/wiki/Base64)로 변환됩니다. 왜 끈을보고 싶니? 무엇 때문에? –

+0

고객 ID는 텍스트 및 숫자입니다. 새 데이터베이스에는 적절한 ID가 있지만 다른 참조를 위해이 ID를 아직 발송해야합니다. 다른 데이터베이스는이 ID를 원하는 열의 문자열 만 받아들입니다. – Morgan

답변

2

감사를 작동하지 않습니다 변환을 수행하십시오. 이 ASCII입니다 가정하면이 작업을 수행 할 수 있습니다

string customerID = Encoding.ASCII.GetString((byte[])row["Customer ID"]); 

은 다른 인코딩 (UTF8, UTF16, 등)의 경우 해당 하나를 사용하십시오.

+0

안녕하세요 제프, 그걸로 나는 "오류 1 'System.Data.DataRow' '필드'및 'System.Data.DataRow'형식의 첫 번째 인수를 수락하는 '필드'확장 메서드가 정의를 포함하지 않습니다 (using 지시문이나 어셈블리 참조가 빠져 있습니까?) " – Morgan

+0

'Field()'확장 메소드 대신에 캐스트가 필요합니다. C# 2.0이라고 추가 했으므로 확장 메서드를 사용할 수 없습니다. –

+0

감사합니다. 이제 작동합니다. 죄송합니다 처음부터 2.0을 추가하는 것을 잊었습니다. – Morgan

관련 문제