DataTable型のオブジェクトをvarbinary型のフィールドにSQL 2005データベースに保存しました。私はそれを元に戻したいと思っていますが、タイプキャストできませんでした。これは私がそれを保存した方法です。byte []配列を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();
}
'dt'はDataTableオブジェクトのインスタンスです。
strig 'S' の使用は何ですか? –
@Ahmad:この例では、DataTableはバイト[]にシリアル化され、次にUTF8文字列としてエンコードされ、次にバイト[]とDataTableに戻されます。あなたはDBにバイトを格納しているので、それは無関係ですが、ntextとして格納するか、XMLに挿入したい場合、これはどうやって行うのでしょうか。 – MyItchyChin