存储过程没有错误,但数据库不更新(Access)

时间:2013-12-02 12:00:55

标签: c# asp.net database stored-procedures

我试图通过asp.net(C#)中调用的存储过程来更新数据库中的一些信息,我正在使用Access数据库。它是一个购物车。我希望在购物车已经存在的情况下更新商品的数量。如果出现问题,我甚至会使用一条消息进行显示。它表明它成功了,但改变并没有发生。当我尝试在购物车中添加现有商品时,我也遇到了同样的问题。更新没有执行,我没有错误!但我觉得很清楚!

//méthode pour mettre à jour les données dans la table
public static bool MajProduit(string produit, int qte)
{
    //on obtient l'objet configuré DbCommande
    DbCommand m_cmd = LibAccesGenerique.CreerCmd();
    //on établit la procédure stockée
    if (qte <= 0)
        m_cmd.CommandText = "ShoppingCartDeleteProduits";
    else
        m_cmd.CommandText = "ShoppingCartUpdateProduit";
    //on créer les paramètres
    DbParameter m_param = m_cmd.CreateParameter();
    m_param.ParameterName = "@CartID";
    m_param.Value = ShoppingCartId;
    m_param.DbType = DbType.String;
    m_param.Size = 36;
    m_cmd.Parameters.Add(m_param);
    //on en crée un autre produit
    m_param = m_cmd.CreateParameter();
    m_param.ParameterName = "@Produit";
    m_param.Value = produit;
    m_param.DbType = DbType.Int32;
    m_cmd.Parameters.Add(m_param);
    //parametre qté
    m_param = m_cmd.CreateParameter();
    m_param.ParameterName = "@Quantite";
    m_param.Value = qte;
    m_param.DbType = DbType.Int32;
    m_cmd.Parameters.Add(m_param);
    //on retourne vrai si l'opération réussie
    try
    {
        //on execute la procédure stockée et retourne vrai, si la méthode s'est bien exécutée
        return (LibAccesGenerique.ExecuteNonQuery(m_cmd) != -1);
    }
    catch
    {
        return false;
    }
}

这是我更新项目的方法。它只能使用删除程序。 这是我的更新存储过程(在msaccess中查询):

UPDATE ShoppingCart SET Quantite = @Quantite, DateAjoute = NOW()
WHERE ProduitID = @ProduitID AND CartID = @CartID;

这是删除程序:

DELETE *
FROM ShoppingCart
WHERE CartID = @CartID and ProduitID = @ProduitID;

0 个答案:

没有答案