我有一个存储过程,它接受一个用户定义的表类型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 的参数时,它会引发错误:
无法将“season1”转换为 int。
这是否意味着 C# 应用程序中的列顺序应该与 SQL 中的列顺序相同?
对此的任何帮助都将受到高度赞赏。
提前致谢