在开始我的问题之前,我需要提到我是 c++ 程序员而不是 c#,所以也许我的代码语法似乎错误。我是业余爱好者,需要改进!;)
我有一个关于处理数据适配器输出结果的问题(也许是一个想法而不是问题)。让我们看一下这些行:
public DataSet CollectData()
{
DataSet result = new DataSet();
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand("dbo.StoredProc1", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
IDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(result);/// filling a dataset
return result;
}
}
如您所见,此函数填充数据集并将其返回。任何我想使用这个对象的地方,我都应该像这样循环遍历它:
DataSet dataSet = DataObj.CollectData(); /// above function!
string token;
string lemma;
foreach (DataRow row in dataSet.Tables[0].Rows)
{
token = ((string)row["Token"]);
lemma = ((string)row["Lemma"]);
...
//// TODO: ex. write to file
}
但是,我有一个类来演示这个存储的对象。
像这样的课程:
public class Lexeme
{
private int tokenId = -1;
private string token;
private string lemma;
/// some get and set functions!
}
如您所见,该类包含一个对象(它类似于数据库表中存储对象的包装器)
所以我想知道是否有返回这个对象的列表(这里的 Lexeme)而不是数据集?我的意思是具有高效内存使用的东西。因为我处理大量数据。
例如这样的:
public MYDATASET CollectData()
{
MYDATASET result = new MYDATASET ();
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand("dbo.StoredProc1", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
IDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(result);/// filling a dataset
return result;
}
}
数据集可以继承吗?