【发布时间】:2017-12-01 17:38:08
【问题描述】:
将系统定义表中的日期值传递给从 vb.net 调用的存储过程会导致错误:
将参数值从 DataTable 转换为 DateTime 失败
代码:
Dim ValueTable As New DataTable
ValueTable.Columns.Add("Value", GetType(Double))
ValueTable.Columns.Add("timestamp", GetType(DateTime))
ValueTable.Columns.Add("point", GetType(Integer))
ValueTable.Columns.Add("valueNumeric", GetType(Double))
用户定义表如下
CREATE TYPE [dbo].[ValueTable] AS TABLE
(
OID int primary key,
[Value] [float] NULL,
[timestamp] [datetime] NULL,
[point] [int] NULL,
[valueNumeric] [float] NULL
)
GO
存储过程如下
CREATE PROCEDURE [dbo].[Insert_Values]
@tblValues AS ValueTable READONLY
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Value (Value, timestamp, Point, ValueNumeric)
SELECT
Value, timestamp, point, valueNumeric
FROM
@tblValues
END
我需要通过从 vb.net 代码调用的存储过程插入多行。
当从 vb 以 SqlCommand 运行时,我收到此错误:
数据库错误:将参数值从 DataTable 转换为 DateTime 失败。
数据库是 SQL Server 2008。
【问题讨论】:
标签: sql vb.net sql-server-2008