Erreur de base de données: Il n'y a pas de ligne à la position 0

Je crois que cette question a été posée à plusieurs mois en arrière, mais je crois que ma situation est différente et que les mêmes règles ne s'appliquent pas.

Chaque fois que j'exécute cette méthode que le même message d'erreur s'affiche. Il n'y a pas de ligne à la position 0. Si je change de [0] à [1] ou [15]; Il n'y a pas de ligne à [1] et etc. Cela pourrait-il signifier que ma base de données n'est pas même à vous connecter? Dois-je écrire une sorte de si instruction afin de déterminer pour vérifier si les lignes sont encore là?

    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;
}
Pourquoi est votre méthode bool? Il ne retourne true
une raison évidente est que, dans l'avenir, la capture est d'aller-retour d'un faux de sorte que l'appelant savoir s'il a réussi ou pas.
c'est OK dans certaines méthodes, où vous attendent des erreurs de se produire. Ce n'est pas le cas.
Je suis sûr que c'est une question facile, mais j'obtiens une erreur avec la Longueur de la propriété, CS1061: 'Système.Les données.DataRowCollection' ne contient pas une définition pour 'longueur' et aucune méthode d'extension 'longueur' acceptant un premier argument de type 'System.Les données.DataRowCollection' a pu être trouvé (vous manque une directive using ou une référence d'assembly?) Je suis sûr que je peux trouver la réponse, mais juste au cas ou quelqu'un voudrais de l'aide.
bien sûr, c'est pourquoi j'ai demandé. J'ai peut-être tort, le commettant avait une bonne raison pour retourner un booléen dans cette méthode, et je voudrais apprendre de lui. Ou je pourrais avoir droit, il ne peut même pas réalisé que c'est une mauvaise conception, et de lui apprendre. C'est pourquoi nous sommes ici, à Débordement de Pile, à droite? 🙂

OriginalL'auteur javasocute | 2011-10-17