Erreur format pas correct

MathieuBar Messages postés 1 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 19 septembre 2015 - 19 sept. 2015 à 09:09
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 - 22 sept. 2015 à 11:36
Bonjour,
j'ai une erreur Input string was not in a correct format quand je check mon checkbox dans mon gridview,
voila mon code aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
 
 
public partial class dispo: System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            LoadData();
        }
    }
 
    private void LoadData()
    {
        OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["dispoConnectionString"].ConnectionString);
        conn.Open();
        string affiche = "SELECT * FROM disponibilite";
        OleDbDataAdapter da = new OleDbDataAdapter(affiche, conn);
        DataTable dt = new DataTable();
        da.Fill(dt);
        GridView1.DataSource = dt;
        GridView1.DataBind();
        conn.Close();
    }
    public void checkbox_OnCheckedChanged(object sender, EventArgs e)
    {
        CheckBox checkbox = (CheckBox)sender;
        GridViewRow row = (GridViewRow)checkbox.NamingContainer;
        string cocher = row.Cells[1].ToString();
        bool check = checkbox.Checked;
 
        OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["dispoConnectionString"].ConnectionString);
        conn.Open();
        String sql = "UPDATE disponibilite SET Occupation = @Occupation WHERE id = @id";
        OleDbCommand com = new OleDbCommand(sql, conn);
        com.Parameters.Add("@Occupation", OleDbType.Boolean).Value = check;
        com.Parameters.Add("@id", OleDbType.Integer).Value = cocher;
        com.ExecuteNonQuery();
        conn.Close();
        LoadData();
    }
}


Dans mon base de données access 2013 Occupation est de type Booléen O/N et id est de type NuméroAuto(Entier Long)
Je comprend pas d'où peut venir l'erreur si quelqu'un a des idées pour m'aider un peu.
Merci.
A voir également:

2 réponses

cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
20 sept. 2015 à 00:21
Bonjour,

Je n'ai pas testé mais pourquoi mettre un string "cocher" dans un entier ?

Je pense que ceci ira mieu.

public void checkbox_OnCheckedChanged(object sender, EventArgs e)
    {
        CheckBox checkbox = (CheckBox)sender;
        GridViewRow row = (GridViewRow)checkbox.NamingContainer;
        string cocher = row.Cells[1].ToString();
 int iCocher = int.Parse(cocher);
       bool check = checkbox.Checked;
 
        OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["dispoConnectionString"].ConnectionString);
        conn.Open();
        String sql = "UPDATE disponibilite SET Occupation = @Occupation WHERE id = @id";
        OleDbCommand com = new OleDbCommand(sql, conn);
        com.Parameters.Add("@Occupation", OleDbType.Boolean).Value = check;
        com.Parameters.Add("@id", OleDbType.Integer).Value = iCocher;
        com.ExecuteNonQuery();
        conn.Close();
        LoadData();
    }


Bonne journée
0
bonjour,
merci pour votre réponse et j'ai fait ce que vous m'avez suggéré mais rien ne change toujours la même erreur.
0
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
22 sept. 2015 à 11:36
Bonjour,

A quelle ligne a tu l'erreur ?

en debug que vaut row.Cells[1].ToString().

Bonne journée
0
Rejoignez-nous