SQL Server データベースに書き込む次のコードがあります。
private void InsertResult(Result results, string messageId)
{
object chkresult = (results);
MemoryStream memStream = new MemoryStream();
StreamWriter sw = new StreamWriter(memStream);
sw.Write(chkresult);
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Reporting"].ConnectionString);
using (conn)
{
using (SqlCommand cmd = new SqlCommand())
{
conn.Open();
cmd.CommandText = "Results_Ins";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Id", SqlDbType.VarChar, 50).Value = messageId;
cmd.Parameters.Add("@result", SqlDbType.VarBinary, Int32.MaxValue);
cmd.Parameters["@result"].Value = memStream.GetBuffer();
cmd.Parameters.Add("@RowCount", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.Connection = conn;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception err)
{
// handle the error
//messageInsert = false;
}
finally
{
conn.Close();
}
}
}
//return rowCount;
}
このコードを実行すると、Result
列に 0x が格納されます。これが正しいかどうかわからないので、助けが必要です。
基本的に、完全なオブジェクトを SQL Server データベース テーブルの 1 つの列に格納する必要があります。