Creo que esta pregunta fue hecha varios meses atrás, pero creo que mi situación es diferente y las mismas reglas no se pueden aplicar.base de datos de error: No hay ninguna fila en la posición 0
Cada vez que ejecute este método que aparece mismo error hacia arriba. No hay fila en la posición 0. Si cambio [0] a [1] o [15]; No hay fila en [1] y etc. ¿Esto podría significar que mi base de datos ni siquiera se está conectando? ¿Debería escribir algún tipo de instrucción if para determinar si las filas están allí?
public bool UpdateOrderToShipped(string order)
{
orderNumber = order;
string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
SqlCommand comm = new SqlCommand(statement, connectionPCI);
comm.Parameters.Add("SOPNUMBE", orderNumber);
try
{
comm.Connection.Open();
comm.ExecuteNonQuery();
comm.Connection.Close();
}
catch(Exception e)
{
comm.Connection.Close();
KaplanFTP.errorMsg = "Database error: " + e.Message;
}
statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
comm.CommandText = statement;
SqlDataAdapter da = new SqlDataAdapter(comm);
DataTable dt = new DataTable();
da.Fill(dt);
soptype = dt.Rows[0]["SOPTYPE"].ToString(); //errror here
return true;
}
¿Por qué su método es un bool? Solo devuelve verdadero – Andre
@Andre: una razón obvia es que en el futuro la captura va a devolver un falso para que la persona que llama sepa si ha tenido éxito o no. – Chris
@Chris, esto está bien en algunos métodos, donde espera que ocurran errores. Esto no parece ser el caso. – Andre