我将类型为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' 的? – 2009-08-19 14:36:43
@Ahmad:在这个例子中,一个DataTable被序列化为一个byte [],然后编码为一个UTF8字符串,然后返回byte [],然后DataTable。由于您将字节存储在数据库中,因此无关紧要,但是如果您想将其作为ntext存储或将其插入到XML中,这将是您如何做到的。 – MyItchyChin 2009-08-19 15:05:54