时间:: passing dataTable to stored procedure: column order issue

标签 c# .net sql sql-server-2008

我有一个存储过程,它接受名为 SeasonTable用户定义的表类型,如下所示:

季节表

    [SeasonId] [int] NOT NULL,
    [SeasonName] [varchar](50) NOT NULL,
    [Month] [int] NULL, 
    [IsDeleted] [bit] NOT NULL

存储过程如下图

CREATE PROCEDURE [dbo].[udpTest] 
(
    @STable dbo.SeasonTable READONLY
)   
AS
BEGIN
SELECT [SeasonName] as SeasonName,[SeasonId],[Month],[IsDeleted] 
    FROM @AdminBillingSeasonsTable
END

当我从 C# 应用程序调用它时

private DataTable TestCreateDataTable()
{
            DataTable dt = new DataTable();

            dt.Columns.Add("SeasonName", typeof(string));
            dt.Columns.Add("SeasonId", typeof(int));                
            dt.Columns.Add("Month", typeof(int));
            dt.Columns.Add("IsDeleted", typeof(bool));
            dt.Rows.Add("season1",1, 4,  false);
            dt.Rows.Add("season2",2, 9, false);
            dt.Rows.Add("season3",3, 11,  false);
            return dt;
}

当我将上表用作 C# 应用程序的 SP 参数时,它会抛出错误:

unable to convert "season1" to int.

这是否意味着 C# 应用程序中的列顺序应与 SQL 中的列顺序相同?

非常感谢与此相关的任何帮助。

提前致谢

最佳答案

尝试像这样切换列序列

 private DataTable TestCreateDataTable()
            {
                DataTable dt = new DataTable();

                dt.Columns.Add("SeasonId", typeof(int));     // seasonId and then
                dt.Columns.Add("SeasonName", typeof(string)); // seasonName
                dt.Columns.Add("Month", typeof(int));
                dt.Columns.Add("IsDeleted", typeof(bool));
                dt.Rows.Add("season1",1, 4,  false);
                dt.Rows.Add("season2",2, 9, false);
                dt.Rows.Add("season3",3, 11,  false);
                return dt;
            }

关于时间:: passing dataTable to stored procedure: column order issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167646/

相关文章:

c# - Visual Studio - 无法运行任何项目 : application was unable to start correctly (0xc0000142)

c# - EqualityComparer<T>.Default 与 T.Equals

c# - 设计 : Queue Management question (C#)

MySQL : Load Data Infile with AI PRIMARY Key and On Duplicate Key Update

c# - Windows Phone 8 应用程序不包含 InitializeComponent 的定义

c# - (Random.NextDouble() < 1) 的用途是什么

c# - 带有期限和日期范围的汇总

c# - C# 中的 Convert.ToInt32

sql - 如何处理原始可空类型的 Spark UDF 输入/输出

php - MYSQL 按喜欢/不喜欢和受欢迎程度排序