1

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 つの列に格納する必要があります。

4

1 に答える 1