У меня есть таблица данных, которая отформатирована из массива имен столбцов, т.е.
DataTable ThisTable = new DataTable();
for (int i = 0; i <= col.GetUpperBound(0); i++)
{
try
{
ThisTable.Columns.Add(new DataColumn(col[i].ToString(), typeof(string)));
}
catch (Exception e)
{
MessageBox.Show("Uploader Error"+e.ToString());
return null;
}
}
я затем использую объект BinaryFormatter
для сериализации / десериализации потока памяти, чтобы я мог читать данныеиз потока в стол.По сути, пользователи будут загружать лист Excel, который будет считан в базу данных.Хотя я понимаю, что это возможно, Я НЕ хочу записывать лист на диск, а затем читать его в .
Однако, когда я иду, чтобы получить данные из вызова Deserialize()
, я не получаю ошибку, однако я получаю пустой DataSet.
Mem будет моим объектом потока памяти.
BinaryFormatter bformat = new BinaryFormatter();
bformat.Serialize(Mem, ThisTable);
Mem.Seek(0, SeekOrigin.Begin);
byte[] bt = Mem.ToArray();
Stream s = new MemoryStream(bt);
Mem.Position = 0;
s.Position = 0;
ThisTable = (DataTable)bformat.Deserialize(Mem);
DS.Tables.Add(ThisTable);
return DS;