Si encuentras algo que te causa duda nos puedes dejar un comentario y trataremos de ayudarte lo mas rápido que podamos.
Solución:
El problema es que dejar la función (a través de la declaración de retorno) lo saca de la using
bloques, y así el SqlDataReader
y SqlConnections
que está utilizando se desechan. Para solucionar el problema, intente cambiar la firma de la función de esta manera:
public static IEnumerable GetGeneralInformation ( int RecID )
y luego actualice el medio de la función de esta manera:
using ( var reader = cmd.ExecuteReader() )
while ( reader.Read() )
yield return reader;
Para el final “¿Cómo lo leo?” parte, podría verse así:
int RecID = 12345;
string result = GetGeneralInformation(RecID).First()["Status"].ToString();
Agrega tu conexión string a la sección AppSettings en app.config o web.config.
public string GetSqlConnection()
return System.Configuration.ConfigurationManager.AppSettings["SqlConnectionString"];
//Función para devolver los resultados de SqlDataReader
public SqlDataReader executeReader(string sql, SqlParameter[] parameters=null)
SqlConnection conn = new SqlConnection();
conn.ConnectionString = GetSqlConnection();
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
if (parameters != null)
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter p in parameters)
cmd.Parameters.Add(p);
else
cmd.CommandType = CommandType.Text;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
Para usar la función:
string query = @"SELECT cs.Status, cs.Completed
FROM NC_Steps s
INNER JOIN NC_ClientSteps cs
ON cs.RecID = s.RecID
WHERE cs.ClientID = 162
AND s.RecID = @value";
//you can add more parameters by adding commas
var parameters = new SqlParameter[]
new SqlParameter("@value", RecID )
;
SqlDataReader dr = executeReader(query, parameters);
while (dr.Read())
//fill your controls with data
dr.Close();
valoraciones y reseñas
Nos puedes añadir valor a nuestro contenido colaborando tu experiencia en las explicaciones.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)