Bạn sẽ có thể viết một cái gì đó như thế này:
string queryStmt = "INSERT INTO dbo.YourTable(Content) VALUES(@Content)";
using(SqlConnection _con = new SqlConnection(--your-connection-string-here--))
using(SqlCommand _cmd = new SqlCommand(queryStmt, _con))
{
SqlParameter param = _cmd.Parameters.Add("@Content", SqlDbType.VarBinary);
param.Value = YourByteArrayVariableHere;
_con.Open();
_cmd.ExecuteNonQuery();
_con.Close();
}
Sử dụng LINQ-to-SQL, bạn muốn viết một cái gì đó như thế này:
using(YourDataContextHere ctx = new YourDataContextHere())
{
SomeClassOfYours item = new SomeClassOfYours();
item.ByteContent = (your byte content here);
ctx.SomeClassOfYourses.InsertOnSubmit(item);
ctx.SubmitChanges();
}
Đó sẽ chèn byte[]
của bạn vào một cột Content
loại VARBINARY
trong bảng SQL Server của bạn dưới dạng luồng byte, mà bạn có thể đọc b ack 1: 1 lại sau.
Nguồn
2010-10-30 07:55:00
Câu trả lời hay. Tuy nhiên, dựa trên tuyên bố rằng giá trị là một băm, có thể nó sẽ có độ dài không đổi. Nếu vậy, hãy xem xét sử dụng nhị phân có độ dài thay vì varbinary. –
@Sean Reilly: true - nhưng các thuật toán băm khác nhau cũng tạo ra các băm dài khác nhau, vì vậy bạn có thể muốn sử dụng VARBINARY với độ dài tối đa phù hợp để chứa tất cả các biến thể –
@marc_s tôi sẽ sử dụng LINQ. tôi có phải làm SqlDbType.VarBinary không? – Yustme