he un procedimiento almacenado que acepta una tabla definida usuario tipo llamada SeasonTable
que se parece a esto:C#: pasar dataTable al procedimiento almacenado: cuestión orden de las columnas
SeasonTable
[SeasonId] [int] NOT NULL,
[SeasonName] [varchar](50) NOT NULL,
[Month] [int] NULL,
[IsDeleted] [bit] NOT NULL
almacenados El procedimiento es como se muestra a continuación
CREATE PROCEDURE [dbo].[udpTest]
(
@STable dbo.SeasonTable READONLY
)
AS
BEGIN
SELECT [SeasonName] as SeasonName,[SeasonId],[Month],[IsDeleted]
FROM @AdminBillingSeasonsTable
END
Cuando llamo a esto desde C# aplicación
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;
}
Cuando uso la tabla anterior como parámetro a SP de aplicación de C# es tirar de error:
unable to convert "season1" to int.
¿Quiere esto decir el orden de las columnas en C# aplicación debe ser lo mismo que el orden de las columnas en SQL?
Cualquier ayuda con respecto a esto es muy apreciada.
Gracias de antemano
¿Te ha intentado cambiar el orden de las columnas (SeasonId continuación SeasonName) en dt ?? – yogi
@yogi ya después de cambiar funcionó bien. !!!! – sandeep
@yogi quizás necesite agregar eso como la respuesta: para que la gente sepa que ha sido respondida – whytheq