次のようなユーザー定義のテーブル型を受け入れるストアド プロシージャがあります。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 の列の順序と同じであることを意味しますか?
これに関するヘルプは大歓迎です。
前もって感謝します