c# - 在数据表的标题行上方添加空行
问题描述
我按照这个将新行添加到数据表的顶部来添加空行,但即使我的索引为 0,它仍然不会在我的数据表的标题上方添加空行。
我试过这个
数据行空白行 = dt.NewRow(); dt.Rows.InsertAt(blankRow, 0);
这是我的代码
public void filldatagridview(ExcelWorksheet workSheet)
{
DataTable dt = new DataTable();
//Create the data column
for (int col = workSheet.Dimension.Start.Column; col <= workSheet.Dimension.End.Column; col++)
{
dt.Columns.Add(col.ToString());
}
for (int row = 12; row <= 26; row++)
{
DataRow newRow = dt.NewRow(); //Create a row
int i = 0;
for (int col = workSheet.Dimension.Start.Column; col <= workSheet.Dimension.End.Column; col++)
{
newRow[i++] = workSheet.Cells[row, col].Text;
}
dt.Rows.Add(newRow);
}
dt.Columns.RemoveAt(0); //remove No
dt.Columns.RemoveAt(0); //remove article
//Get BookCode
using (SqlConnection conn = new SqlConnection("Server con.."))
using (SqlCommand cmd = new SqlCommand(null, conn))
{
StringBuilder sb = new StringBuilder("SELECT InvtID AS BOOKCODE FROM InventoryCustomer WHERE Barcode In (");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i != 0) sb.Append(",");
string name = "@P" + i;
cmd.Parameters.AddWithValue(name, dt.Rows[i]["3"]);
sb.Append(name);
}
sb.Append(")");
cmd.CommandText = sb.ToString();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dt.DefaultView.Sort = "BOOKCODE";
dt = dt.DefaultView.ToTable();
dt.Columns["BOOKCODE"].SetOrdinal(0);
dataGridView2.DataSource = dt;
}
}
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
解决方案
你可以试试这个。由于 DataTable 为空,添加一行会自动将其添加到第 0 个索引处:
DataRow row = dt.NewRow();
dt.Rows.Add(row);
或者你可以这样做:
DataRow blankRow = dt.NewRow();
for (int temp = 0; temp < 10; temp++) // here 10 is number of columns
{
blankRow[temp] = ""; // use appropriate data type,
}
dt.Rows.InsertAt(blankRow, 0);
更新:
添加数据源之前的 DataBound 事件:
GridViewRow headerRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
TableHeaderCell headerCell = new TableHeaderCell();
headerCell.Text = "headercol1”;
headerCell.ColumnSpan = 2;
headerRow.Controls.Add(headerCell);
headerCell = new TableHeaderCell();
headerCell.ColumnSpan = 2;
headerCell.Text = "headercol2”;
headerRow.Controls.Add(headerCell);
dataGridView2.HeaderRow.Parent.Controls.AddAt(0, headerRow);
这假设您有一个 4 列的网格视图。我给 headercol1 2 colspace 和 headercol2 2 colspace
推荐阅读
- javascript - Rails 'button_tag' 定义变量
- wpf - LiveCharts 中轴上显示的最小值
- json - 如何在 laravel 中显示 Json 字段值
- php - PHP在while循环中检查条件
- java - 如果在另一个活动中添加数据,如何更新 recyclerView?
- css - &。在 SCSS 中不起作用……为什么不呢?
- ios - AudioKit 录音机设置,麦克风崩溃,“所需条件为假:mixedDest”
- php - 如何使用 const list 显示 json 数据
- javascript - React 路由器在更改路由时重新安装子节点(没有协调)
- python - LableEncoder() 错误(sklearn)