J'essaye d'insérer une valeur dans une table en utilisant la commande d'insertion comme indiqué dans le code ci-dessous mais j'obtiens cette erreur "pas toutes les variables liées". J'ai beaucoup essayé mais il est obscurci.Le problème se produit à cmd.executenonquery.Toute aide serait appréciée.

Code c #

[WebMethod]
 public static void SaveUser(User user)
    {
 String connectionString = ConfigurationManager.ConnectionStrings["conndbprodnew"].ConnectionString;
        using (OracleConnection con = new OracleConnection(connectionString))
        {
            using (OracleCommand cmd = new OracleCommand("INSERT INTO par_cinfo(Product_Id,CUSTOMER_NAME,CITY,CDATE) VALUES (:Product_Id,:CUSTOMER_NAME,:CITY,:CDATE)", con))
            {
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("CUSTOMER_NAME", user.CUSTOMER_NAME);
                cmd.Parameters.AddWithValue("CITY", user.CITY);
                cmd.Parameters.AddWithValue("CDATE", user.CDATE);
                cmd.Connection = con;
                con.Open();
                cmd.ExecuteNonQuery();               
                con.Close();
            }
  }
    }

}
public class User
{
    public decimal Product_Id { get; set; }
    public string CUSTOMER_NAME { get; set; }
    public string CITY { get; set; }
    public DateTime CDATE { get; set; }
}

Jquery sur clic sur le bouton

<script type="text/javascript">
        $(document).ready(function () {
            var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
            var date = new Date();
            var val = date.getDate() + "-" + monthNames[date.getMonth()] + "-" + date.getFullYear();
            $("#Label2").text(val);
        });



 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/json2/0.1/json2.js"></script>
<script type="text/javascript">
    $(function () {
        $("[id*=Button3]").bind("click", function () {
            var user = {};
            user.Product_Id = 1;
            user.CUSTOMER_NAME = $("[id*=TextBox2]").val();
            user.City = $("[id*=TextBox3]").val();
            user.cdate = $("[id*=Label2]").text();
            $.ajax({
                type: "POST",
                url: "Default.aspx/SaveUser",
                data: '{user: ' + JSON.stringify(user) + '}',
                //data: JSON.stringify({user:user}),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    alert("User has been added successfully.");
                    window.location.reload();
                }
            });
            return false;
        });
    });
</script>
            </script>

Le tableau que j'ai créé dans oracle est le suivant simplement pour entrer les données dans le tableau

Create table par_cinfo
     (
      Product_Id         NUMBER(10) NOT NULL PRIMARY KEY,
      CUSTOMER_NAME      VARCHAR2(10 BYTE) NOT NULL,
      CITY               VARCHAR2(10 BYTE) NOT NULL,
      CDATE              DATE

      ) 
0
hari 27 nov. 2017 à 08:36

3 réponses

Meilleure réponse

Tout d'abord, lorsque vous déclarez une variable dans votre commande SQL, utilisez @ et non ::

using (OracleCommand cmd = new OracleCommand("INSERT INTO par_cinfo(Product_Id,CUSTOMER_NAME,CITY,CDATE) VALUES (@Product_Id,@CUSTOMER_NAME,@CITY,@CDATE)", con))

Deuxièmement, dans votre commande SQL INSERT, vous déclarez un paramètre appelé Product_Id mais vous ne l'avez jamais ajouté à votre cmd.Parameters. Vous devez donc ajouter:

cmd.Parameters.AddWithValue("Product_Id", user.Product_Id);
1
Koby Douek 27 nov. 2017 à 05:45

Fournissez le paramètre pour Product_Id. S'il s'agit d'une colonne d'identité, supprimez le nom de champ de votre commande elle-même.

using (OracleCommand cmd = new OracleCommand("INSERT INTO par_cinfo(CUSTOMER_NAME,CITY,CDATE) VALUES (@CUSTOMER_NAME,@CITY,@CDATE)", con)
0
Hrishikesh 27 nov. 2017 à 05:55

Où est le paramètre de Product_Id ??

Ajoutez ceci dans votre code

cmd.Parameters.AddWithValue("Product_Id", user.Product_Id);
1
user7415073 27 nov. 2017 à 05:43
47504527