2012-06-04 92 views
0

是否可以將二進制數據附加到SQL Server中數據類型爲圖像的列上。 我herad它可能爲varbinary(最大),但我想圖像數據類型的解決方案。 如果是這樣,請提供我的代碼示例。在SQL服務器中追加圖像數據類型的二進制數據

+0

'IMAGE'已被棄用 - 您應該始終使用'VARBINARY(MAX)'代替。 –

回答

0
//Create Binary Data Stream 
    string filePath = Server.MapPath("APP_DATA/TestDoc.docx"); 
    string filename = Path.GetFileName(filePath); 
    FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
    BinaryReader br = new BinaryReader(fs); 
    Byte[] bytes = br.ReadBytes((Int32)fs.Length); 
    br.Close(); 
    fs.Close(); 

-------------------- 
//insert the file into database 

string strQuery = "insert into tblFiles(Name, ContentType, Data) values (@Name, @ContentType, @Data)"; 
SqlCommand cmd = new SqlCommand(strQuery,conn); 
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename; 
cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value = "application/vnd.ms-word"; 
cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes; 
cmd.ExecuteNonQuery(); 

注意:未來版本的Microsoft SQL Server中將刪除ntext,文本和圖像數據類型。避免在新的開發工作中使用這些數據類型,並計劃修改當前正在使用它們的應用程序。改爲使用nvarchar(max),varchar(max)和varbinary(max)。

+0

我不想插入,但我想要追加/更新到現有的二進制數據,如.WRITE方法爲VARBINARY(MAX) – ravidev

+0

您可以覆蓋,但不能追加 –

+0

這意味着它是不可能追加像VARBINARY(MAX )使用.WRITE方法.. – ravidev

相關問題