我试图通过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;