是否可以将数据存储在硬盘而不是 内存中的DataTable中?默认情况下,当数据表被填充时,表(和数据)将保留在内存中。除了内存之外,是否可以将这些数据保存在其他介质中?一切都将保持不变,但我不会将数据表存储在内存中来填充数据表,而是将其存储在硬盘驱动器中的某个位置。
System.Data.DataTable 实现 ISerialized,因此这不是什么大挑战:以下示例使用二进制序列化
使用 System.Runtime.Serialization.Formatters.Binary;
[...]
//Create DataTable and Serialize
private void button1_Click(object sender, System.EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("uid");
dt.Columns.Add("test");
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = string.Format("test{0}", i);
dt.Rows.Add(dr);
}
FileStream fs = new FileStream(@"C:\test.bin", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, dt);
fs.Close();
}
//Deserialize DataTable from File
private void button2_Click(object sender, System.EventArgs e)
{
FileStream fs = new FileStream(@"C:\test.bin", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
DataTable dt = (DataTable) bf.Deserialize(fs);
fs.Close();
foreach (DataRow dr in dt.Rows)
{
Debug.WriteLine(dr[0].ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4510 次 |
| 最近记录: |