我正在使用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();
我得到了
在这里,您看到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();
请再次帮助我。
抱歉,我忘了“dataGridView1.AutoGenerateColumns = false;”。
谢谢我得到了我的要求。
答案 0 :(得分:2)
您必须设置DataGridViewTextBoxColumn.DataPropertyName="name_of_field"
。请查看MSDN文章。
PS:您必须使用Parameterized
查询而不是硬编码的sql字符串来阻止sql-injection.
答案 1 :(得分:2)
转到datagridview属性。
搜索列..在未绑定的管理员无列上将其DataproperyName设置为admin_no
这会自动将您的DataTable列admin_no绑定到datagridview unbound Admin No列。也可以在其他未绑定的列上执行此操作。
此致