如果我用大量的数据,几万或几十万条, 用下面的方法来提取数据,就需要创建几万或几十万的对象,
我不清楚这样的方法是否可用?
还有没有其它更好的方法了?
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;
}
}
}
我不清楚这样的方法是否可用?
还有没有其它更好的方法了?
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;
}
}
}
解决方案 »
- 求一段让鼠标自动移动的C#代码。
- 请问把RichTextBox中的文本保存到本地磁盘
- 提取1-50之间的数字
- invokemember调用静态带参数成员的问题
- 如何在GridView显示出来的数据中任意单击一行数据的任一地方就可以选中此行
- 想在ASP.NET程序中实现在执行某个按钮事件之前弹出个YES/NO的对话框,并返回对话框结果,怎么实现!~
- 关于DataGridView的问题
- 关于 日期时间的验证和比较 的问题``急!!!
- 如何将页面导出并保存为一个图形文件(用代码)
- HttpContext.Current.Server.MapPath 在应用程序中为什么不能正确使用?
- DevExpress中的GridView怎样设置某一个单元格的编辑状态
- asp.net页面显示问题
你自定义一个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;
}
}
}这算对象少不?
2. User是class还是struct? 如果User只是用于传输数据,可以用struct
不建议直接使用DataSet,DataTable的
首先,他们的体积太多
再次,调用时需要操作字段名或者索引,没有使用属性来得方便
不过用来查询和快速定位的话,DataTable和DataSet还是提供了很多方法,例如Select、Find等,这样你就不用自己去写这些方法了。
User是一个class.我只是想从数据库读取数据,然后用DataGridView控件来显示数据,欢迎大家提出宝贵意见。
http://blog.csdn.net/shylx123/article/details/7935922
感谢呀, 我就想要一个DataTable来做为一个数据源,在DataGridView控件上显示数据。
回家试一下,用你这个方法,我还省得再去New 对象存储数据,再转换成DataTable.