簡體   English   中英

將日期值從用戶定義的表傳遞到SQL Server 2008存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM