0
我使用以下查询将数据从Excel文件导入SQL Server数据库。 Excel文件具有所有值作为字符串类型(每个单元格之前的'
)。无法将数据类型nvarchar转换为数字
,当我将其导入我得到这个错误。“不能为nvarchar数据类型转换为数字”
如果我从进口取出两列SalePrice和Price2,然后导入成功。
我的表的数据类型是
CREATE TYPE [dbo].[InventoryType] AS TABLE
(
[LocalSKU] [varchar](200) NOT NULL,
[ItemName] [varchar](200) NULL,
[QOH] [int] NULL,
[Price] [decimal](19, 4) NULL,
[Discontinued] [bit] NULL,
[Barcode] [varchar](25) NULL,
[Integer2] [int] NULL,
[Integer3] [int] NULL,
[SalePrice] [decimal](19, 4) NULL,
[SaleOn] [bit] NULL,
[Price2] [decimal](19, 4) NULL
)
GO
我使用的查询是:
SqlCommand sqlcmd = new SqlCommand
(@"MERGE Inventory AS target
USING (SELECT
LocalSKU, ItemName, QOH, Price, Discontinued,
Barcode, Integer2, Integer3, SalePrice, SaleOn, Price2
FROM @source) AS Source ON (Source.LocalSKU = target.LocalSKU)
WHEN MATCHED THEN
UPDATE
SET ItemName = source.ItemName,
Price = source.Price,
Discontinued = source.Discontinued,
Barcode = source.Barcode,
Integer2 = source.Integer2,
Integer3 = source.QOH,
SalePrice = source.SalePrice,
SaleOn = source.SaleOn,
Price2 = source.Price2;", sqlconn);
SqlParameter param;
param = sqlcmd.Parameters.AddWithValue("@source", dr);
param.SqlDbType = SqlDbType.Structured;
param.TypeName = "dbo.InventoryType";
sqlconn.Open();
sqlcmd.ExecuteNonQuery();
sqlconn.Close();
该声明不插入任何东西 - 它只更新现有的行.....另外:你没有发布你得到的实际**错误**! –
@marc_s我已经更新了这个问题。是的,它只是更新。 – user2525244
“QOH”列的类型可以转换为数字类型吗? –