更改数据表中列的数据类型会更改单元格文本

时间:2012-07-11 02:07:46

标签: c# asp.net

好的,我首先导入一个excel文件,然后将数据保存到Data表中,然后将其放入Gridview中。我想将列标题名称复制到行单元格中,并且输入字符串不是正确格式的错误。我尝试更改列数据类型,它的工作原理。但复制的数据与原始数据不同。这是我正在使用的代码:

DataTable dtf1 = new DataTable();
 OleDbDataAdapter adapter = new OleDbDataAdapter(sql, con);
adapter.FillSchema(dtf1, SchemaType.Source);
            dtf1.Columns[6].DataType = typeof(string);
            adapter.Fill(dtf1);

 dtf1.Rows[0][6] = dtf1.Columns[6].ColumnName.ToString();

原始数据是邮政编码“3210”,但它将其复制为“F7”。

1 个答案:

答案 0 :(得分:0)

我在这里找到了解决方案OleDB & mixed Excel datatypes : missing data。问题是当excel导入数据时它忽略了数字。更改连接字符串解决了问题。

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ServerPath + ";Extended Properties='Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text'");

以前是

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ServerPath + ";Extended Properties='Excel 8.0;IMEX=1'");