Как связать значение базы данных в текстовом поле Datagridview? - PullRequest
1 голос
/ 15 декабря 2011

Я использую форму Windows и C # и MySQL.

Тем самым я добавляю три несвязанных столбца в Datagridview с помощью контрольного тега, который находится в правом верхнем углу Datagridview.

column1 - это DataGridViewCheckBoxColumn. столбцы 2 и 3 - это DataGridViewTextBoxColumn.

После этого я написал код для заполнения представления Datagrid.

connection.Open();
                 DataTable dt = new DataTable();
                 // Create a new data adapter based on the specified query.
                 MySqlDataAdapter da = new MySqlDataAdapter("select admin_no,name from " + FormName + " where class_code='" + class_code + "' and division_code='" + division_code + "' and Delete_Status = 0", connection);
                 //SQl command builder is used to get data from database based on query
                 MySqlCommandBuilder cmd = new MySqlCommandBuilder(da);
                 //Fill data table
                 da.Fill(dt);
                 //assigning data table to Datagridview
                 dataGridView1.DataSource = dt;
                 //Resize the Datagridview column to fit the gridview columns with data in datagridview
                 dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
                 connection.Close();

В том, что я получил

enter image description here

Здесь вы видите, что два столбца Textbox пусты. и два других добавлено.

Я не хочу удалять текстовое поле. Поэтому я хочу заполнить данные в моем текстовом поле, а не автоматически сгенерированным., ..

Пожалуйста, помогите мне, чтобы решить эту проблему ....

Спасибо, я получил значение в столбцах текстового поля шаблона. Но добавляются последние два столбца автоматически сгенерированных столбцов. Как это убрать.

connection.Open();
                 DataTable dt = new DataTable();                 
                 MySqlDataAdapter da = new MySqlDataAdapter("select admin_no,name from " + FormName + " where class_code='" + class_code + "' and division_code='" + division_code + "' and Delete_Status = 0", connection);                 
                 MySqlCommandBuilder cmd = new MySqlCommandBuilder(da);                 
                 da.Fill(dt);                 
                 dataGridView1.DataSource = dt;                                 
                 dataGridView1.Columns[1].DataPropertyName = "admin_no";
                 dataGridView1.Columns[2].DataPropertyName = "name";
                 connection.Close();

enter image description here

Помогите мне снова, пожалуйста.

Извините, я забыл "dataGridView1.AutoGenerateColumns = false;".

Спасибо, я получил мое требование.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Перейдите к свойствам вашего datagridview.

Поиск столбцов. В вашем несвязанном столбце Admin No установите его DataproperyName равным admin_no

Это будет привязывать ваш столбец DataTable admin_no к несвязанному datagridview столбцу Admin Noавтоматически.Сделайте это также с другими вашими несвязанными столбцами.

С уважением

2 голосов
/ 15 декабря 2011

Вы должны установить DataGridViewTextBoxColumn.DataPropertyName="name_of_field". Взгляните на MSDN статью.

PS: Вы должны использовать запрос Parameterized вместо жестко закодированной строки sql, чтобы предотвратить sql-инъекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...