如何在Datagridview文本框中绑定数据库值?

时间:2011-12-15 06:55:42

标签: c# mysql windows-forms-designer

我正在使用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 个答案:

答案 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列。也可以在其他未绑定的列上执行此操作。

此致