私はPage_Loadイベントで2つのSQLテーブルを塗りつぶすデータセットを持っています。 DropDownList ddlAirport00に最初のテーブルの値を入力します。しかし、ddlAirport00_SelectedIndexChanged()からいっぱいのデータセットにアクセスすることはできません。データセットが空であるか、変数のスコープに問題があるようです。 誰かが私を助けることができますか?page_loadに埋め込まれたアクセスデータセット
public partial class _Default : System.Web.UI.Page
{
public DataSet ds = new DataSet();
}
私のPage_Load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
String CS = ConfigurationManager.ConnectionStrings["MyDatabaseConnectionString1"].ConnectionString;
using (SqlConnection scon = new SqlConnection(CS))
{
//this.ds = new DataSet();
sda = new SqlDataAdapter("Select * from Aeropuerto", scon);
sda.Fill(ds, "Aeropuerto");
sda = new SqlDataAdapter("Select * from ALocalidad", scon);
sda.Fill(ds, "Localidad");
sda = new SqlDataAdapter("Select * from Tramo", scon);
sda.Fill(ds, "Tramo");
}
}
そして私のDDLのSelectedIndexChanged()ロジックを取得するデータはif (!IsPostBack)
の内側に位置しているので**私はtesteeric.Text
protected void ddlAirport00_SelectedIndexChanged(object sender, EventArgs e)
{
if (ds.Tables.Contains("Tramo"))
{
testeeric.Text = DateTime.Now.ToString();
}
else
{
testeeric.Text = "Brasil";
}
}
ここにコードをいくつか追加してください。他の人があなたの質問を理解するのに役立ちます。 – IsuruAb
これは古典的なasp.netです。 page loadとselectedindexchangedメソッドは異なるコンテキストを持ちます。データセットfrondbを再度取得するか、キャッシングをソートする必要があります。 –
ページがポストバックするたびに、Pageクラスの新しいインスタンスが表示されます。つまり、すべてのフィールド(クラスインスタンスに固有の変数)は、リクエストごとに新しくなります。これらの値を使用して要求間で値を保持することはできません。データをどこかにキャッシュするか、値を再クエリする必要があります。 – mason