I have a problem with SQL Server and C# ASP.NET MVC, first, I create a stored procedure that retrieves a json from database this works correctly when I use EXEC procedure name in Management Studio.
Stored procedure result (intentionally not formatted):
[{"Id":1,"Nombre":"Aguascalientes","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":2,"Nombre":"Baja California","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":3,"Nombre":"Baja California Sur","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":4,"Nombre":"Campeche","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":5,"Nombre":"Coahuila","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":6,"Nombre":"Colima","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":7,"Nombre":"Chiapas","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":8,"Nombre":"Chihuahua","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":9,"Nombre":"Distrito Federal","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":10,"Nombre":"Durango","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":11,"Nombre":"Guanajuato","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":12,"Nombre":"Guerrero","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":13,"Nombre":"Hidalgo","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":14,"Nombre":"Jalisco","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":15,"Nombre":"México","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":16,"Nombre":"Michoacán","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":17,"Nombre":"Morelos","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":18,"Nombre":"Nayarit","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":19,"Nombre":"Nuevo León","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":20,"Nombre":"Oaxaca","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":21,"Nombre":"Puebla","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":22,"Nombre":"Querétaro","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":23,"Nombre":"Quintana Roo","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":24,"Nombre":"San Luis Potosí","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":25,"Nombre":"Sinaloa","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":26,"Nombre":"Sonora","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":27,"Nombre":"Tabasco","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":28,"Nombre":"Tamaulipas","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":29,"Nombre":"Tlaxcala","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":30,"Nombre":"Veracruz","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":31,"Nombre":"Yucatán","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":32,"Nombre":"Zacatecas","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}}]
Check the result completes the array with the square bracket. But when I execute that query using this method in C#:
public async Task<List<T>> ListAsync<T>(Type tclass) where T : class, new ()
{
var connString = _connectionSettings.ConnString;
using (_conn = new SqlConnection(connString))
{
try
{
await _conn.OpenAsync();
_command = new SqlCommand($"List{tclass.Name}", _conn)
{
CommandType = CommandType.StoredProcedure
};
_command.Parameters.Clear();
using (_dataReader = await _command.ExecuteReaderAsync())
{
List<T> data = null;
while (await _dataReader.ReadAsync())
{
data = JsonConvert.DeserializeObject<List<T>>(_dataReader[0].ToString());
}
return data ?? null;
}
}
catch (Exception exception)
{
log.Error(exception.Message, exception);
return null;
}
}
}
I only obtain this from json (intentionally not formatted):
[{"Id":1,"Nombre":"Aguascalientes","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":2,"Nombre":"Baja California","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":3,"Nombre":"Baja California Sur","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":4,"Nombre":"Campeche","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":5,"Nombre":"Coahuila","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":6,"Nombre":"Colima","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":7,"Nombre":"Chiapas","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":8,"Nombre":"Chihuahua","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":9,"Nombre":"Distrito Federal","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":10,"Nombre":"Durango","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":11,"Nombre":"Guanajuato","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":12,"Nombre":"Guerrero","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":13,"Nombre":"Hidalgo","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":14,"Nombre":"Jalisco","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":15,"Nombre":"México","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":16,"Nombre":"Michoacán","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":17,"Nombre":"Morelos","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":18,"Nombre":"Nayarit","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":19,"Nombre":"Nuevo León","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":20,"Nombre":"Oaxaca","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":21,"Nombre":"Puebla","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero":484}},{"Id":22,"Nombre":"Querétaro","Pais":{"Id":"MX","Nombre":"México","ISO":"MEX","Numero
A invalid json, the json is not complete and newtonsoft make this invalid (Is obvious) but why the data is chunked?