将数据放入DataTable后,如何从Excel中的列中以大写forms获取值

我试图从第18列,testing大写Excel文件,但没有任何成功的大写。

在这里输入图像说明

如何到达DataTable中的值?

这是我用Excel文件中的值填充DataTable的地方:

using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); adapter.Fill(dataTable); return dataTable; } 

我想要把所有18的值都大写。

遍历制作第18列数据的所有行UpperCase:

 foreach (DataRow row in dataTable.Rows) { row["Test"] = row["Test"].ToString().ToUpper(); } 

您可以为DataTable的RowChanged事件添加一个事件处理程序。

 using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.RowChanged += changedRow; adapter.Fill(dataTable); return dataTable; } void changedRow(object sender, DataRowChangeEventArgs e) { if(e.Action == DataRowAction.Add) e.Row[17] = e.Row[17].ToString().ToUpper(); } 

也许应该计划一些关于空值的检查。

当然这会避免数据的第二个循环,因为在Fill调用中加载数据表时会调用这个事件。

请注意,您应该使用RowChanged事件,因为RowChanging事件不允许修改行值。 此外,我已经使用了列的固定索引,因为我不知道您的连接string是否包含configuration来激活Excel表的第一行中的列名称。 但是,如果您的列名实际上命名为“18”,那么您可以用string“18”replace数字索引。