데이터 유형이 varBinary 인 데이터베이스 필드가 있습니다. 이제 gridView에서 해당 데이터를 표시하려고합니다. 데이터베이스에varBinary 필드 데이터를 표시하는 방법
System.Byte[]
값이 아닌
0x2C6D1A
:하지만 난 출력을 얻고있다.
이 문제를 해결하는 방법을 알려주십시오.
데이터 유형이 varBinary 인 데이터베이스 필드가 있습니다. 이제 gridView에서 해당 데이터를 표시하려고합니다. 데이터베이스에varBinary 필드 데이터를 표시하는 방법
System.Byte[]
값이 아닌
0x2C6D1A
:하지만 난 출력을 얻고있다.
이 문제를 해결하는 방법을 알려주십시오.
당신은 표시 목적으로하여 바이트 배열을 포맷 할 BitConverter
클래스를 사용할 수 있습니다 :
string forDisplay =
"0x" + BitConverter.ToString(yourByteArray).Replace("-", string.Empty);
당신이 다음 string
, BitConverter
has a load of methods로 직접 변환 할 수없는 경우 다양한 종류의 바이트 배열로 변환 .
편집 ...
당신이 GridView
제어에 직접 일부 쿼리 결과를 결합하는 경우 다음 쿼리 자체가 VARCHAR
에 VARBINARY
열을 변환하는 것이 더 쉬울 수 있습니다
SELECT CONVERT(VARCHAR(MAX), your_varbinary_column, 1) AS for_display
FROM your_table
(참고 :이 변환 유형 - VARBINARY
에서 VARCHAR
까지 '0x1234AB'
형식으로 - SQL Server 2008에서만 올바르게 작동합니다. 이전 버전의 SQL Server는 저장소를 캐스팅했습니다. 문자 데이터에 직접 진 데이터)
명백한 가능, 아마 단지 루프 아무것도가없는 경우 :.이 클래스의 속성, 않는 TypeConverter
을 만들 사소한 될 경우
public static string ToHexString(byte[] raw)
{ // could also be an extension method
StringBuilder sb = new StringBuilder("0x", 2 + (raw.Length * 2));
for (int i = 0; i < raw.Length; i++)
{
sb.Append(raw[i].ToString("X2"));
}
return sb.ToString();
}
이 표시 목적으로 표시하려면 [TypeConverter(typeof(HexConverter))]
으로 속성을 표시하십시오.
class HexConverter : TypeConverter // untested
{
public override object ConvertTo(ITypeDescriptorContext context,
System.Globalization.CultureInfo culture,
object value, Type destinationType)
{
if (destinationType == typeof(string))
{
return ToHexString((byte[])value);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
가장 좋은 방법은 무엇입니까? SQL 서버에서 DataGrid로 데이터를 바인딩 하시겠습니까? 사용자에게 파일을 업데이트 (기존 파일을 새 파일로 대체)하는 옵션을 제공해야합니다. 먼저 SQL Server에서 기존 파일을로드 한 다음 사용자에게 옵션을 제공하여 교체하거나 교체없이로드 할 수 있어야합니다. webapplication에? –
@RehanMehdi는 전혀 상관없는 질문입니다. 난 그냥 개체 모델에 던져 버릴거야 ... –
답장을 보내 주셔서 감사합니다. 서면으로 저를 도울 수 있습니까? 나는 객체 프로그래밍에 익숙하지 않다. 내 코드로 새 질문을 시작해야합니까? –
좀 더 구체적으로 말씀해주십시오. 죄송합니다.이 코드 줄을 어디에 추가해야하는지 이해할 수 없어 죄송합니다. 문자열 forDisplay = "0x"+ BitConverter.ToString (yourByteArray) .Replace ("-"string.Empty); ' –