В моем коде я следующее:Локальная переменная не доступна из другого метода
public void PopulateForm(int i)
{
DAL.TicketsDataSetTableAdapters.TicketDetailsTableAdapter fobj = new DAL.TicketsDataSetTableAdapters.TicketDetailsTableAdapter();
DataTable dt = new DataTable();
dt = fobj.GetTicketUpdates(txtSupportRef.Text);
txtShortDesc.Text = dt.Rows[0].Table.Rows[i]["ShortDesc"].ToString();
txtNextStep.Text = dt.Rows[0].Table.Rows[i]["NextStep"].ToString();
txtLastUpdated.Text = dt.Rows[0].Table.Rows[i]["LastUpdated"].ToString();
}
Тогда в другой области кода позади у меня есть:
protected void btnNext_Click1(object sender, EventArgs e)
{
int i = (int)ViewState["recordIndex"];
i = i >= dt.Rows[0].Table.Rows.Count - 1 ? 0 : i + 1;
PopulateForm(i);
}
Но когда я построить решение, он говорит:
The name 'dt' does not exist in the current context
Я хочу сделать код повторно использовать. Я не хочу создавать экземпляр данных больше, чем я. – PriceCheaperton
Это действительно просто. Вы объявляете dt как локальную переменную в методе PopulateForm. Вне этого метода он не существует – Steve
Да, это может быть базовым ... Но я не знал о публичных и частных .... – PriceCheaperton