gespeichert Ich ein Objekt vom Typ Datatable in SQL 2005-Datenbank in einem Feld vom Typ varbinary. Ich möchte es zurückholen, aber ich konnte es nicht eingeben. So habe ich es gespeichert.ein byte [] Array in Datatable
MemoryStream memStream = new MemoryStream();
StreamWriter sw = new StreamWriter(memStream);
sw.Write(dt);
con.Open();
using (SqlCommand cmd = new SqlCommand("INSERT INTO Tables(TableName, TableData, QuestionID) VALUES (@TableName, @TableData, @QuestionID)", con))
{
cmd.Parameters.Add("@TableName", SqlDbType.VarChar).Value = "a new table";
cmd.Parameters.Add("@TableData", SqlDbType.VarBinary,Int32.MaxValue).Value = memStream.GetBuffer();
cmd.Parameters.Add("@QuestionID", SqlDbType.VarChar).Value = "2";
cmd.ExecuteNonQuery();
}
Das 'dt' ist die DataTable-Objektinstanz.
Was ist die Verwendung des strig 'S'? –
@Ahmad: In dem Beispiel wird eine DataTable in ein Byte [] serialisiert, dann als UTF8-String codiert und dann zurück zu Byte [], dann DataTable. Da Sie die Bytes in der DB speichern, ist es irrelevant, aber wenn Sie es als ntext speichern oder in XML einfügen möchten, wäre dies die Vorgehensweise. – MyItchyChin