Ich habe eine gespeicherte Prozedur, die genannt Benutzerdefinierte Tabellentyp akzeptiert SeasonTable
, die wie folgt aussieht:C#: passing Datatable gespeicherte Prozedur: Spaltenreihenfolge Problem
SeasonTable
[SeasonId] [int] NOT NULL,
[SeasonName] [varchar](50) NOT NULL,
[Month] [int] NULL,
[IsDeleted] [bit] NOT NULL
Stored Das Verfahren ist wie folgt:
CREATE PROCEDURE [dbo].[udpTest]
(
@STable dbo.SeasonTable READONLY
)
AS
BEGIN
SELECT [SeasonName] as SeasonName,[SeasonId],[Month],[IsDeleted]
FROM @AdminBillingSeasonsTable
END
Als ich dies von C# Anwendung aufrufen
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;
}
Wenn ich die obige Tabelle als param verwenden, um von C# app SP ist es Fehler zu werfen:
unable to convert "season1" to int.
Bedeutet dies die Reihenfolge der Spalten in app C# sollte Gleich wie die Spaltenreihenfolge in SQL?
Jede Hilfe in diesem Zusammenhang wird sehr geschätzt.
Vielen Dank im Voraus
Schalt Haben Sie versucht, Ihre Spaltenreihenfolge (SeasonId dann SeasonName) in dt Schalt ?? – yogi
@Yogi ya nach dem Umschalten funktionierte es gut. !!!! – sandeep
@yogi vielleicht muss das als Antwort hinzufügen: so Leute wissen, dass es beantwortet wurde – whytheq