2016-10-09 90 views
-1

文字列からSQL Serverにファイルを作成します。私はそれをデータベースに入れる方法を理解できません。読んだ後、それはファイルストリームと関係があるようです。もしそうなら、一度ストリームが作成されたら、それをファイルとして私のDBにどのように置くのですか?C#Filestream to SQL Serverデータベース

FileStream fs1 = new FileStream("somefilename", FileMode.Create, FileAccess.Write); 
StreamWriter writer = new StreamWriter(fs1); 

writer.WriteLine("file content line 1"); 
writer.Close(); 

私が達成しようとしているのは、文字列からファイルを作成することです。私はdbがすでにファイル用に設定されていると信じています。

HttpPostedFile file = uploadedFiles[i]; 
       if (file.ContentLength < 30000000) 
       { 
        //DOFileUpload File = CurrentBRJob.SaveFile(CurrentSessionContext.Owner.ContactID, Job.JobID, fileNew.PostedFile); 

        DOFileUpload File = CurrentBRJob.SaveFile(CurrentSessionContext.Owner.ContactID, Job.JobID, file, file.ContentLength, CurrentSessionContext.CurrentContact.ContactID); 
        DOJobFile jf = CurrentBRJob.CreateJobFile(CurrentSessionContext.Owner.ContactID, Job.JobID, File.FileID); 
        CurrentBRJob.SaveJobFile(jf); 
       } 

私がやりたいことはある:代わりに、私たちは、DBに保存するためのファイルを選択するユーザーたちは、作品セーブファイルメソッドを持っていたよう。代わりにそのファイルを文字列で内部的に作成して、dbに保存します。

+0

あなたが保存したい場合はSQL Serverの文字列はVARCHARフィールドに格納されます。 SQL Serverにファイルを格納する場合は、filestreamを使用するのが最善の方法です。したがって、まずSQL Serverのfilestreamを構成し、ファイルを保持する列を追加する必要があります。合理的なガイドが1つあります:https://www.simple-talk.com/sql/learn-sql-server/an-introduction-to-sql-server-filestream/しかし、それは簡単な運動ではありません。 –

答えて

1

以下のいずれかの列タイプを作成します。 ADO.NET SqlCommandを使用してデータベースに書き込みます。

  • varbinary(max) - 書き込むバイナリデータ
  • nvarchar(max) - Unicodeテキストデータ用(テキストはUNICODEの文字を含む場合、私が意味する)
  • varchar(max) - 非Unicodeテキストデータについては、
+0

'ntext'、' text'、および 'image'データ型は、将来のバージョンのSQL Serverでは削除されます。 **新しい開発作業でこれらのデータ型**を使用しないでください。現在、それらを使用しているアプリケーションを変更する予定です。代わりに 'nvarchar(max)'、 'varchar(max)'、 'varbinary(max)'を使用してください。 [詳細はこちら](http://msdn.microsoft.com/en-us/library/ms187993.aspx) –

+0

nvarchar(max)、varchar(max)を使用してください。私は答えを編集した – Naidu