gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 23:09:36 26 4
gpt4 key购买 nike

我有一个存储过程,它接受名为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com