Приветствую. Сначала код:
| Код | protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return;
if (Page.PreviousPage != null) { ArrayList allData_ = GetTableList(); ListBox1.DataSource = allData_; ListBox1.DataBind(); } }
protected ArrayList GetTableList() { ArrayList allData = new ArrayList(); SqlDataReader myReader = null; SqlCommand getTableNamesCommand = new SqlCommand("SELECT name FROM dbo.sysobjects WHERE type = 'U' ORDER BY name", PreviousPage.connDB.GetDBConnection(PreviousPage.ConnectionString)); myReader = getTableNamesCommand.ExecuteReader();
if (myReader.HasRows) { foreach (DbDataRecord rezult in myReader) { allData.Add(rezult.GetString(0)); } } return allData; }
protected Dictionary<string, string> GetColunmList() { Dictionary<string, string> allData = new Dictionary<string, string>(); SqlDataReader myReader = null; string query = string.Format("SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{0}' ORDER BY COLUMN_NAME", ListBox1.SelectedItem.ToString()); SqlCommand getColunmNameCommand = new SqlCommand(query, PreviousPage.connDB.GetDBConnection(PreviousPage.ConnectionString)); myReader = getColunmNameCommand.ExecuteReader();
if (myReader.HasRows) { foreach (DbDataRecord rezult in myReader) { allData.Add(rezult.GetString(0),rezult.GetString(1)); } }
return allData; }
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) { Dictionary<string, string> allData_ = GetColunmList(); GridView1.DataSource = allData_; GridView1.DataBind(); }
|
Это код страницы ShowDB.aspx, на которой происходит вывод списка имен системных таблиц в заданной БД. При выборе из листбокса отпределенной таблицы, в датагрид должны отобразиться имена ее колонок и типы данных их содержащих. В листбокс загрузка происходит нормально. Все добавляется. Но при выборе из списка имени таблицы (событие SelectedIndexChanged) происходит исключение на строке:
| Код | SqlCommand getColunmNameCommand = new SqlCommand(query, PreviousPage.connDB.GetDBConnection(PreviousPage.ConnectionString));
|
Не задана ссылка на объект. Странно, ведь соединение с БД я создал и установил. Может быть дело в PreviousPage?
Спасибо. |