我想定期将SQL服务器中的大型记录复制到内存表中。我需要将我读取的这些字段放入我自己的对象中,而不是放入另一个SQL表或平面文件存储中。 SQLBulkCopy是前进的方法吗?
答案 0 :(得分:0)
SELECT field1, field2, etc. FROM ...
。没有更多。
答案 1 :(得分:0)
SQLBulkCopy是实现此目的的前进方式
否:SQLBulkCopy不会将数据复制到内存,而是复制到SQL Server表。 你需要一个SqlDataReader
答案 2 :(得分:0)
创建一个类..
public class MemoryObject
{
public Int64 Id {get; set;}
public string OtherProperty {get; set;}
}
然后,使用SQLDataReader ...
public List<MemoryObject> GetMemoryObjects()
{
using (SqlConnection connection = new SqlConnection("..."))
{
string sql = "query";
SqlCommand command = new SqlCommand(sql.ToString(), connection);
command.CommandTimeout = 3600;
connection.Open();
var memoryObjects = new List<MemoryObject>();
using (var rdr = command.ExecuteReader())
{
while (rdr.Read())
{
var memoryObject = new MemoryObject {
Id = rdr.GetInt64(0),
OtherProperty = rdr.GetString(1)
};
memoryObjects.Add(memoryObject);
}
}
}
return memoryObjects;
}