2011-01-17 8 views
0

C#을 사용하여 DB에 파일을 저장하는 코드가 필요합니다.C#을 사용하여 큰 바이너리 데이터를 SQL DB에 저장

내가 사용이 솔루션은 같은 STH :

3 SqlParameter에

만들기)

2 SqlCommand를

만들기

1) (필자는 DB에서 (MAX) 열을 varbinary를 사용하고 있습니다)) 설정 parameter.Value = File.ReadAllBytes (적인 filePath)

4)

더 효율적인 솔루션이 있는가하는 SqlCommand

을 실행? 파일이 커질 수 있기 때문에 모든 바이트를 메모리로 읽어 들인 후 DB에 저장하면 성능 문제가 걱정 스럽다.

은 무엇 당신이 가진 것은 당신이 varbinary(MAX) 열이 얻을 수있는 최선 사전

+0

정확한 복제는 아니지만 http://stackoverflow.com/questions/8952/storing-a-file-in-a-database-as-opposed-to-the-file-system과 매우 유사합니다. 질문은 여기서 여러 가지 다른 방식으로 요청되었으며, 합의는 항상 파일을 데이터베이스에 저장하는 것이 나쁜 생각입니다. 결국 성능은 거의 항상 문제가됩니다. – David

+2

@David - ** 큰 ** 파일입니다. 이 백서를 참조하십시오. http://research.microsoft.com/apps/pubs/?id=64525 – Oded

+0

@Oded 링크를 보내 주셔서 감사합니다. 지금 읽으십시오. – David

답변

1

에 감사드립니다. 데이터베이스의 번을 번으로 스트리밍 할 수 있지만 에 스트리밍 할 방법이 없습니다.

2

저는 지금 같은 문제에 직면하고 있습니다. varbinary 필드에 순차적으로 쓰는 방법이 있습니다. 이 문서를 참조하십시오 : '다운로드 및 ASP.NET MVC를 통해 SQL 서버에서 이미지 업로드'그것은 같은 명령을 사용하는 방법을 보여줍니다 http://www.codeproject.com/KB/aspnet/streamingblobhttp.aspx

:

UPDATE <table> SET <field>.WRITE(@data, null, null) WHERE ... 

이없이 컬럼에 데이터의 덩어리를 작성 할 수 있습니다를 전체 파일을 읽어야합니다.

관련 문제