![](/img/trans.png)
[英]SQL Server 2008 Receive an user-defined table type in a CLR Stored Procedure?
[英]Passing Date value from user defined table to a SQL Server 2008 stored procedure
將日期值從系統定義的表傳遞到從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。
在創建的類型中,您有5列。 其中,您定義的數據表僅定義了4列。 我認為這就是問題所在。 以及您將需要更改存儲過程以包括OID列,因為它是主鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.