Подтвердить что ты не робот

Сохранить байт [] в базе данных SQL Server из С#

Как сохранить массив byte [] в базе данных SQL Server? Этот байт [] содержит значение HashAlgorithm.

Данные необходимы снова для последующего использования. Поэтому преобразовать его и НЕ возвращать в исходное состояние не то, что я хочу.

Спасибо заранее!

4b9b3361

Ответ 1

Вы должны написать что-то вроде этого:

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();
}

Используя Linq-to-SQL, вы должны написать что-то вроде этого:

using(YourDataContextHere ctx = new YourDataContextHere())
{
   SomeClassOfYours item = new SomeClassOfYours();

   item.ByteContent = (your byte content here);

   ctx.SomeClassOfYourses.InsertOnSubmit(item);
   ctx.SubmitChanges();
}

Это будет вставлять ваш byte[] в столбец Content типа VARBINARY в вашей таблице SQL Server в виде потока байтов, который вы можете снова прочитать 1:1 позже.

Ответ 2

Используйте VARBINARY

Ответ 3

Варбина или CHAR - со значением, преобразованным в шестнадцатеричный. Я делаю это довольно часто с хэш-значениями, потому что он позволяет мне легко видеть и сравнивать их (на rintouts, во время разработки), а накладные расходы минимальны.