读取大数据的时候,可否用new 新对象来存储数据?
如果我用大量的数据,几万或几十万条, 用下面的方法来提取数据,就需要创建几万或几十万的对象,我不清楚这样的方法是否可用?
还有没有其它更好的方法了?
--------------------编程问答-------------------- 这个方法挺好,没啥好说的了
public ArrayList ExportData()
{
ArrayList UserList = new ArrayList();
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UserInfo.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM UserInfo";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
User users = new User();
users.Id = (int)reader[0];
users.Username = (string)reader[1];
users.Sex = (int)reader[2];
users.Age = (int)reader[3];
users.Address = (string)reader[4];
UserList.Add(users);
}
}
}
}
return UserList;
}
}
}
你自定义一个Collection<Users>也差不多
你可以用List<Users>会快点
如果用DataTable+DataAdapter代码少点儿,可以只创建一个DataTable,其它数据对象不用自己创建 --------------------编程问答--------------------
public DataTable ExportData()
{
DataTable UserTable = new DataTable();
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UserInfo.mdf;Integrated Security=True;User Instance=True"))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM UserInfo";
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
SqlDataAdapter.Fill(UserTable)
}
}
}
return UserTable;
}
}
}
这算对象少不? --------------------编程问答-------------------- 1. ArrayList 换成List 甚至可以换成 Dictionary,有时候我们需要从UserList里快速查找用户
2. User是class还是struct? 如果User只是用于传输数据,可以用struct
--------------------编程问答--------------------
换成Struct对直接用DataSource属性绑定DataView等控件就麻烦了 --------------------编程问答-------------------- ArrayList 我基本用IList<T> 或者 List<T> --------------------编程问答--------------------
不建议直接使用DataSet,DataTable的
首先,他们的体积太多
再次,调用时需要操作字段名或者索引,没有使用属性来得方便
--------------------编程问答--------------------
如果不是用于支持数据绑定的控件显示(GirdView、ComboBox等),我也不建议用DataTable,更不建议主动拉进DataSet。
不过用来查询和快速定位的话,DataTable和DataSet还是提供了很多方法,例如Select、Find等,这样你就不用自己去写这些方法了。 --------------------编程问答-------------------- 感谢各位。
感谢2楼,我就是需要一个DataTable, 然后做为数据源在DataGridView上面显示数据,等我回家试一下。
User是一个class.
我只是想从数据库读取数据,然后用DataGridView控件来显示数据,欢迎大家提出宝贵意见。
http://blog.csdn.net/shylx123/article/details/7935922 --------------------编程问答--------------------
感谢呀, 我就想要一个DataTable来做为一个数据源,在DataGridView控件上显示数据。
回家试一下,用你这个方法,我还省得再去New 对象存储数据,再转换成DataTable.
补充:.NET技术 , C#