【发布时间】:2019-06-12 03:53:33
【问题描述】:
我正在使用 Winforms 并用 SQL database 值填充我的 datagridview。这些值是运行时不同形式的用户定义值。我将继续编译这些值,因此我使用visibleChanged 而不是load 来显示我的数据。
数据正在正确编译,但在加载第二组值之后,也会编译额外的空行(见图)。
如何删除这些额外的行?
下面是我如何将值从 database 加载到 datagridview 的代码:
public Testsql()
{
InitializeComponent();
dataGridView1.ColumnCount = 2;
dataGridView1.Columns[0].Width = 100;
dataGridView1.Columns[1].Width = 100;
dataGridView1.Columns[0].Name = "ID";
dataGridView1.Columns[1].Name = "EXTERIOR";
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dataGridView1.AllowUserToAddRows = false;
}
private void Testsql_VisibleChanged(object sender, EventArgs e)
{
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Savertb.mdf;Integrated Security=True";
sqlConnection.Open();
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandText = "Select * from Rtbdata";
SqlDataReader dataReader = sqlCommand.ExecuteReader();
for (int i = 0; dataReader.Read(); i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["ID"].Value = dataReader["Id"].ToString();
dataGridView1.Rows[i].Cells["EXTERIOR"].Value = dataReader["Exterior"].ToString();
}
sqlConnection.Close();
}
【问题讨论】:
-
您应该将数据网格视图绑定到数据表,并使用数据适配器清除并用更新的数据重新填充表
-
@Caius Jard 啊,太棒了。遵循您的建议后没有其他行。谢谢! :)
标签: c# mysql winforms datagridview