2009-10-26 62 views
0

我无法找到正确的DataType插入EXCEL 97-2003格式。我可以插入,但是当使用Excel 97-2003文档时,每个列都会将数字保存为文本。即使从C#Excel中插入Double时,仍然会将其识别为保存为文本的数字,并要求查看器转换为数字。任何帮助将不胜感激。如何将正确的DataType插入Excel 97-2003格式

foreach (DataRow drow in DataTable DT) 
{ 
cmd.CommandText = "INSERT INTO [LHOME$]([Date], [Owner], [MAKE], [BUY], 
[OVERAGE], [SUM]) " + "VALUES(" + "'" + drr.ItemArray[0].ToString() + "'" + ","   + "'"  + drr.ItemArray[1].ToString() + "'" + "," + "'" + drr.ItemArray [2].ToString() + 

是否有可能只是禁用Excel 2007中的后台错误检查?

回答

0

尝试经由命令参数指定的数据类型:

command = new OleDbCommand(
    "INSERT INTO [LHOME$]([Date], [Owner], [MAKE], [BUY], [OVERAGE], [SUM]) " + 
    "VALUES (?, ?, ?, ?, ?, ?)", connection); 

command.Parameters.Add(
    "Owner", OleDbType.Varchar, drr.ItemArray[0], "Owner"); 
... 
command.Parameters.Add(
    "Sum", OleDbType.Double, drr.ItemArray[5], "Sum"); 

adapter.InsertCommand = command; 

对于可用的数据类型的列表看到这一点:http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbtype.aspx

相关问题