【问题标题】:Use same dataset in different method以不同的方法使用相同的数据集
【发布时间】:2011-12-11 17:50:17
【问题描述】:

在一种方法中,我将数据填充到数据集中,并且我想将相同的数据集与另一种方法中的数据一起使用,但我不想将数据集声明为静态,这怎么可能?

static DataSet dset = new DataSet();

【问题讨论】:

  • 我们需要更多信息。方法是静态的吗?他们在同一个班吗?你怎么称呼他们?为什么不想声明一个静态字段?
  • 同一个类的其他方法在不同的类?请解释一下。
  • 是的,它们在同一个类中,我有搜索过程,每次用户单击按钮时都会获取数据并将其填充到数据集中,如果我声明数据集是静态的,我无法更改每次都在里面的数据。
  • 只是为了明确说明:绝对不要将其设为静态
  • 我的精神力量表明这是一个网络问题,而静态是试图在回发之间保持值

标签: c# dataset


【解决方案1】:
public DataSet GetData()
{
    DataSet ds;
    // code to fetch data here
    return ds;
}

public void MethodThatUsesDataSet(DataSet ds)
{
    // use dataset here
}

// call it like this:
MethodThatUsesDataSet(GetData());

【讨论】:

  • 每次我调用该方法时都会从数据库中获取数据,这会产生网络开销。
【解决方案2】:

你不能在类范围内声明这个数据集吗?这样,两种方法都可以访问该实例。

【讨论】:

  • 是的,他们可以访问实例,但不能访问其中的数据。
  • 我不确定我是否理解正确。你能解释一下为什么第二种方法不能访问数据吗?你说的是 asp .net 项目吗?
  • 是的,我尝试在类范围内声明它并用一种方法填充它,当我想用​​另一种方法将该数据集与 gridview 绑定时,数据集中没有数据。
  • 如果你正在开发一个web应用程序,你可以尝试使用Session来持久化数据(按照sq33G的建议),这样值就会可用。您可以将它与 hawkke 给出的解决方案放在一起来解决您的问题。 IE;如果数据在 Session 中可用,请不要点击 DB。
猜你喜欢
  • 2020-11-28
  • 2019-01-22
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多