>An aspx page is always recreated from scratch so your dsRoles variable is not going to survive. Either:
>(a) Recreate it each time
>(b) Save it as a session variable
>(c) Save it as a global variable
>
>BTW I seem to recognize this:
dsRoles = DataLayer.ExecuteQuery("as_GetRole", Params, CommandType.StoredProcedure);
What was causing the error you were having ?
Oh, I had not set up my DA class property. Not sure why it was erroring the way it was too. It's on my list of things to look at.
>
>
>>As I'm VERY new to ASP.Net, I'm not sure I understand how things work.
>>
>>I put together a composite usercontrol. It has a listbox that shows user roles. When a role is selected, the RoleName, RoleCode, and
>>Description are pulled from data and displayed in 3 textboxes - at leats that's what the goal is.
>>
>>At this point when I run it the listbox is populated. But the DataSet that's bound to the list is then null when I attempt to access
>>it from SelectedIndexChanged. I'm guessing that I'm doing this wrong.
>>
>>Here's the code.
>>
>>
>>using System;
>>using System.Collections.Generic;
>>using System.Configuration;
>>using System.Data;
>>using System.Data.Common;
>>using System.Data.SqlClient;
>>using Marois.Common.DataAccess;
>>
>>public partial class crlRoles : System.Web.UI.UserControl
>>{
>> private DataSet dsRoles = null;
>> private DataAccess DataLayer = null;
>>
>> protected void Page_Load(object sender, EventArgs e)
>> {
>> if (!IsPostBack)
>> {
>> DataLayer = new DataAccess();
>> _LoadList();
>> }
>> }
>>
>> private void _LoadList()
>> {
>> DataLayer.ProviderInvariantName = "System.Data.SqlClient";
>> DataLayer.ConnectionString = ConfigurationManager.ConnectionStrings["ApexGlobalConnectionString"].ConnectionString;
>>
>> dsRoles = DataLayer.ExecuteQuery("as_GetRole", CommandType.StoredProcedure);
>>
>> lstRoles.DataSource = dsRoles.Tables[0];
>> lstRoles.DataTextField = "RoleName";
>> lstRoles.DataBind();
>> }
>>
>> protected void lstRoles_SelectedIndexChanged(object sender, EventArgs e)
>> {
>> if (lstRoles.SelectedIndex > -1)
>> {
>> int RoleKey = (int)dsRoles.Tables[0].Rows[lstRoles.SelectedIndex]["RoleKey"];
>>
>> SqlParameter pRoleKey = new SqlParameter("@RoleKey", RoleKey);
>> List<DbParameter> Params = new List<DbParameter>();
>> Params.Add(pRoleKey);
>>
>> dsRoles = DataLayer.ExecuteQuery("as_GetRole", Params, CommandType.StoredProcedure);
>>
>> txtRoleName.Text = dsRoles.Tables[0].Rows[0]["Name"].ToString();
>> txtRoleCode.Text = dsRoles.Tables[0].Rows[0]["RoleCode"].ToString();
>> txtDescription.Text = dsRoles.Tables[0].Rows[0]["Description"].ToString();
>> }
>> }
>>}
>>
>>
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people