Получите различные табличные данные из базы данных, отредактируйте их в gridview и сохраните в базе данных.когда номер столбца в таблице не фиксирован.
Я работаю над проектом.где у меня есть два выпадающих списка и один gridview.и после выбора одной из баз данных .Все таблицы,присутствующие в базе данных, должны появиться во втором выпадающем списке.А теперь вот что я хотел сделать .После выбора таблицы из выпадающего списка.Gridview должен быть заполнен данными, доступными в выбранной таблице.
Теперь я хотел дать опцию редактирования в Gridview .
После редактирования он должен сохранить данные в базе данных.
моя главная проблема заключается в том,что столбец таблицы имеет фиксированное имя.Когда-то 2 столбца,когда-то 3 ,когда-то 4 и его переменная.Не имею ни малейшего представления .Пожалуйста, может ли кто-нибудь суджест меня.Как я могу завершить эту работу?Я застрял здесь.Танки впереди.
Что я уже пробовал:
для взятия имени таблицы в выпадающем списке.
protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e) { try { using (SqlConnection conn = ReturnConnection2(ConString3)) { SqlDataAdapter da = new SqlDataAdapter("USE " + DropDownList3.Text.ToString() + ";SELECT name FROM sys.Tables ;", conn); DataTable ds = new DataTable(); da.Fill(ds); DropDownList4.DataSource = ds; DropDownList4.DataTextField = "name"; DropDownList4.DataValueField = "name"; DropDownList4.DataBind(); conn.Close(); DropDownList4.Items.Insert(0, new ListItem("Select Table Name", "Select Table Name")); } } catch { } } //populate grid protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) { try { string central_string; using (SqlConnection conn = ReturnConnection()) { SqlDataAdapter cmd = new SqlDataAdapter("SELECT server_name,server_type,user_ID,password FROM server_name where server_name='" + DropDownList5.SelectedValue + "'", conn); conn.Open(); DataTable dt = new DataTable(); cmd.Fill(dt); string Datasource = "Data Source=" + dt.Rows[0][0].ToString(); string user_ID = "User ID=" + dt.Rows[0][2].ToString(); string password = "Password=" + dt.Rows[0][3].ToString(); string Initial_catalog = "Initial Catalog=" + DropDownList1.Text; central_string = Datasource + ";" + user_ID + ";" + password + ";" + Initial_catalog; } loadgrd(central_string); } catch { } }
Как дать edit для изменения имени столбца не получается.
пожалуйста помочь.Заранее спасибо.
Richard Deeming
SqlDataAdapter da = new SqlDataAdapter("USE " + DropDownList3.Text.ToString() + ";SELECT name FROM sys.Tables ;", conn);...SqlDataAdapter cmd = new SqlDataAdapter("SELECT server_name,server_type,user_ID,password FROM server_name where server_name='" + DropDownList5.SelectedValue + "'", conn);
Не делай этого так. Использование конкатенации строк может привести и приведет к уязвимостям SQL-инъекций в вашем коде. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
conn.Open(); conn.ChangeDatabase(DropDownList3.Text); SqlDataAdapter da = new SqlDataAdapter("SELECT name FROM sys.Tables;", conn); ...
SqlDataAdapter cmd = new SqlDataAdapter("SELECT server_name,server_type,user_ID,password FROM server_name where server_name = @server_name", conn); cmd.SelectCommand.Parameters.AddWithValue("@server_name", DropDownList5.SelectedValue);