Per mentre sto cercando di richiamare la procedura memorizzata di SQL Server 2008 R2 utilizzando PetaPoco.Parametro valore tabella passata a stored procedure utilizzando PetaPoco
La mia stored procedure accetta un parametro con valori di tabella.
Come posso chiamare la procedura memorizzata in petapoco con valore tabella param?
Ecco quello che sto cercando di fare:
var db = new PetaPoco.Database("repikaciskaBaza");
DataTable table = new DataTable();
DataColumn id = table.Columns.Add("id", type: typeof(Int32));
for (int i = 0; i < 10;i++)
{
DataRow row = table.NewRow();
row["id"] = i;
table.Rows.Add(row);
}
var param = new SqlParameter();
param.DbType = DbType.Object;
param.ParameterName = "@art_id";
param.SqlValue = table;
var lista = db.Query<pocoArts>(";exec dbo.test_sporc_param @0", param);
Questo codice mi dà un'eccezione:
Il flusso di dati tabulari in ingresso (TDS) Remote Procedure Call (RPC) flusso del protocollo non è corretto .
Parametro 3 ("@ 0"): il tipo di dati 0x62 (sql_variant) ha un tipo non valido per i metadati specifici del tipo.
Se ho impostato il valore Ty Parametar
param.SqlDbType = SqlDbType.Structured;
Allora ottengo eccezione come
The table type parameter '@0' must have a valid type name.
Quando definisco il mio param come
param.SqlDbType = SqlDbType.Structured;
param.SqlValue = table;
param.ParameterName = "@art_id";
param.TypeName = SqlDbType.Structured.ToString();
allora ottengo un'eccezione
Colonna, parametro o variabile @ 0. : Impossibile trovare il tipo di dati strutturato.
Come posso definire SqlParam
con valori di tabella param modo che io possa inviare briciolo di dati in SQL Server?
Soluzione:
var param = new SqlParameter();
param.SqlDbType = SqlDbType.Structured; // According to marc_s
param.SqlValue = table;
param.ParameterName = "@art_id";
param.TypeName = "dbo.typ_art_id"; // this is TYP from SQL Server database it needs to be equal to type defined in SQL Server not type of param
L'ho fatto e ora ho un'eccezione diversa – adopilot
Sono passato attraverso, Grazie di aiuto Guarda le mie modifiche per favore – adopilot