하나의 열이있는 sqlserver 테이블이 있습니다. Image
이 코드를 사용하여 db에서 복구합니다.유니 코드를 더블 바이트로 변환
public static byte[] ObtenerArchivo(string IdArchivo,bool GuardarEnDisco)
{
byte[] archivo = null;
MyContext db = new MyContext();
Double Versiond = 1010;
archivo = db.Versiones.Where(x => x.IntIdArchivo == IdArchivo && x.IntIdVersion == Versiond).Select(x => x.BinFisico).First();
return archivo;
}
이제 mi 파일을 읽을 수 있도록 변환해야합니다. 이 응용 프로그램은 비주얼 폭스 프로에서 상속 이후이 기능을 변환해야 내 DB에서 파일을 검색 한
**VFP Sintax
STRCONV(lcImage, 6)
In VFP help it says:
Converts character expressions between single-byte, double-byte, UNICODE, and locale-specific representations.
그리고 6 수단 :
이6 Converts UNICODE (wide characters) to double-byte characters.
이제 내 질문에 내가 할 수있는 방법입니다 C#에서 동일한 conversión을 만드시겠습니까?
EDIT 1 : @ 한스 패스 엔트의 말은 할 수 없습니다. 그리고 그 SQL Image 필드에 텍스트 파일, 이미지, 기본 64 인코딩 파일을 저장했다는 것을 알고 있습니다. C#으로 관리하기 위해 파일을 저장, 검색 및 업데이트하려면 어떻게해야합니까?
* 문자열 *은 바이너리 데이터를 저장하는 데 적합한 유형이 아닙니다. 이러한 데이터는 문자열이 정규화 될 때 손상됩니다. 또한 하나의 대리 문자가 포함되어 있으면 프로그램이 무작위로 중단 될 수 있습니다. VFP 날짜가 훨씬 간단합니다. –
@HansPassant 당신의 도움을 요청합니다. 하지만 지금 C#에서 파일을 처리하려면 어떻게해야합니까? 내가 한 일 : StreamReader를 사용하여 읽은 다음 쌍 바이트 만 가져 오는 자체 문자열을 작성합니다. 그것은 0,2,4,6,8을 얻는다는 것을 의미합니다 .....이 방법으로 나는 원래의 문자열을 얻지 만 실제로 이것은 나를 위해 추악한 소리를 내고 성능이 좋지 않습니다. 아이디어가 있습니까? –