如何将从ExcelDataReader创建的数据表作为参数传递给SQL Server存储过程?

时间:2019-01-11 04:47:48

标签: sql-server asp.net-mvc sqlparameter exceldatareader

我尝试将DataTable从ExcelDataReader传递到SQL Server存储过程:

DataTable dt = hasil.Tables[0];

try
{
    using (SqlCommand cmd = new SqlCommand("spOrderingNewStore", con))
    {
        cmd.Parameters.AddWithValue("@orderingNewTable", SqlDbType.Structured).Value = dt;

        con.Open();
        cmd.ExecuteNonQuery();
    }                    
}
catch (Exception ex)
{
    retMessage = ex.Message;
    result = false;
}

dt是ExcelDataReader中的DataTable,然后我尝试将DataTable传递给参数

我创建新的表格类型:

CREATE TYPE [dbo].[orderingNewTable] 
     AS TABLE
        (
             [Id] [VARCHAR](128) NULL,
             [Name] [VARCHAR](128) NULL
        )

并将其定义为存储过程中的参数:

  @orderingNewTable orderingNewTable READONLY
  INSERT INTO dbo.AAA
  SELECT * FROM @orderingNewTable

DataTable应该怎么做,以便可以将其作为参数传递给SQL Server存储过程?

我尝试将其插入数据库表,但未插入任何数据,已经尝试更改typename和sqldbtype。

谢谢

0 个答案:

没有答案