小编dav*_*est的帖子

System.InvalidCastException Double to String

以下代码打开Excel电子表格并逐个单元格地浏览它.该Console.WriteLine调用用于检查它是否正常工作.

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"\Extracts\Test.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;

for (rCnt = 1; rCnt <= rw; rCnt++)
{
    for (cCnt = 1; cCnt <= cl; cCnt++)
    {
        string str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
        Console.WriteLine("Row:", str.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

System.InvalidCastException'无法将类型为'System.Double'的对象强制转换为'System.String'.'

这是指行:

string str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
Run Code Online (Sandbox Code Playgroud)

我知道有另一个问题有相同的错误,但该解决方案在这种情况下似乎不起作用.

感谢谢谢.

c# excel casting

3
推荐指数
1
解决办法
393
查看次数

删除重复项但每个都留一行

我有下表:

ONBackup表:

Contract    FromDate    Invoice     Data
232         12/12/2017  123
232         14/02/2018  123
232         15/07/2018  123
232         14/02/2017  676
311         12/12/2017  881
Run Code Online (Sandbox Code Playgroud)

有很多"重复"的行,我的副本是发票号码相同的地方,即其他字段可以不同.

该表有140万行(大约一百万个重复),所以不确定下面是否会起作用,因为我感到厌倦了等待3个小时并计算,它必须比我更多的CPU饥饿.

DELETE FROM ONBackup
WHERE Invoice NOT IN
(
    SELECT MIN(Invoice)
    FROM ONBackup
    GROUP BY Invoice
)
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来做到这一点?

sql sql-server

0
推荐指数
1
解决办法
45
查看次数

将 Varchar 转换为浮点 MS SQL

我正在尝试将从 varchar 继承的一些数据转换为 float:

SELECT CAST([Column 8] AS Int)    FROM [Sean].[dbo].[ResApr2019]
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息 245,级别 16,状态 1,第 2 行 将 varchar 值“14,714.000”转换为数据类型 int 时转换失败。

有什么想法可以解决这个问题吗?

谢谢,

sql-server

0
推荐指数
1
解决办法
3964
查看次数

标签 统计

sql-server ×2

c# ×1

casting ×1

excel ×1

sql ×1