Member 12741312 Ответов: 1

Заполнение строки Datagridview с использованием значения в первой ячейке


привет..
у меня есть combobox в первом столбце datagridview, и я хочу заполнить всю строку на основе значения, выбранного в combobox из базы данных .

Что я уже пробовал:

как я могу извлечь данные из таблицы, используя значение combobox в datagridview для заполнения ее строки ..

Suvendu Shekhar Giri

Если вы знаете значение для привязки combobox, которое, по-видимому, является вашим ключом для поиска других деталей строки, почему вы не можете принести все остальные столбцы из базы данных? Разве это не очень просто SELECT заявление.
Поделитесь тем, что вы пробовали до сих пор, или соответствующим кодом, чтобы мы могли правильно понять проблему.

Karthik_Mahalingam

Сувенду, ты получил ответ.

Member 12741312

@Suvendu, спасибо, но я знаю ,как отобразить все данные в datagridview с помощью оператора SELECT.Итак, вопрос в том, как я могу заполнить строку в datagridview, сохранив значение первой ячейки freeze, и заполнить оставшиеся ячейки данными, возвращенными из запроса.
я использую для этого простой метод заполнения, но он не работает.

Karthik_Mahalingam

Всегда использовать  Ответить   кнопка для отправки комментариев / запросов заинтересованному пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

1 Ответов

Рейтинг:
1

Prifti Constantine


ВАР ComboBoxValue = ((комбобокс)управления gridview1.Подряд.FindControl("Поле Combobox1")).selectedValue();


Если ваш comboBox заполнен, например, столбцом "имя", то вы должны написать необходимое ADO.Net для того, чтобы получить доступ к базе данных и внести соответствующие изменения.

используя системы.Сведения;
используя системы.Данных.поставщики sqlclient;

DataTable table = новый DataTable();


using(sqlConnection connection = new sqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["preffered Connection string"].ConnectionString.toString()))
  {
    connection.Open();
    using(sqlCommand cmd = new sqlCommand(String.Format(@"Insert into tbl_Clients("+ "LASTNAME" + "," + "PHONE" + "," + "CELLPHONE" + ")         Values('{0}','{1}','{2}','{3}') Where Name ={4}",value1,value2,value3,value4,ComboBoxValue.toString()),connection)){
         using(sqlAdapter adapter = new sqlAdapter(cmd) ){
             adapter.fill(table);
         }    
        
      }
  }
 GridView1.Datasource = table;
 GridView1.DataBind();


Если вы хотите заполнить одну строку, то вы должны быть конкретны в этом вопросе и указать необходимую строку и ячейку для этого.
OnSelectedIndexChanged(object Sender,EventArgs e){
   var DataRow = e.Row
}


Это событие GridView, переменная EventArgs которого может дать вам указанную строку, в которой происходят изменения.

Надеюсь, это поможет!!
с уважением


Richard Deeming

Кроме того, у вас есть синтаксическая ошибка в вашем INSERT заявление.

И еще INSERT оператор не возвращает никаких строк, поэтому вы не можете использовать SqlDataAdapter чтобы загрузить результаты. Вы должны использовать ExecuteNonQuery вместо.

И ваш код не будет компилироваться, потому что C# чувствителен к регистру.

Prifti Constantine

Спасибо за информацию! Я буду иметь это в виду!