Bonjour,

je voudrais avoir l'avis d'expert sur mon utilisation de Class pour un site Web.

J'ai fais une petite page pour tester.

J'ai une base de données avec une tables Ouvrages. J'ai créé une class Books.

Sur mapage, j'ai une DropDownList qui charge 2 colonnes de ma table ouvrages. Pour cela, j'ai instancié un objet book de Type Books.

Toujours sur cette même page, j'ai un formulaire qui me permet d'enregistrer un nouveau livre dans ma BD.



Mes Questions sont les suivantes :

1- Est-ce que créer une class Books vaut la peine?

2- Est-ce que mon utilisation de la Class est la bonne?

3- Est-ce que cela vaut la peine d'instancier un objet aussi bien pour charger mes données de ma BD que pour enregistrer mes nouveaux livres dans ma BD?

Bref, j'ai besoin de vos avis et de vos conseils.

Merci à tous et voici mon code :

1- Ma Class Books
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Book
{
    private string bookTitle;
    private string isbn;
    private string auteur;
    private int categorie;
    private decimal prix;
    private int CD;
    private DateTime dateParution;
    private int nbPages;
 
    // Constructeur
    public Book(string bookTitle, string isbn)
    {
        this.bookTitle = bookTitle;
        this.isbn = isbn;
    }
 
    public Book(string isbn, string bookTitle, string auteur, int categorie, decimal prix, int CD, DateTime dateParution, int nbPages )
    {
        this.isbn = isbn;
        this.bookTitle = bookTitle;
        this.auteur = auteur;
        this.categorie = categorie;
        this.prix = prix;
        this.CD = CD;
        this.dateParution = dateParution;
        this.nbPages = nbPages;
    }
 
 
    public string BookTitle { get { return this.bookTitle; } }
 
    public string Isbn { get { return this.isbn; } }
 
    public string Auteur { get { return this.auteur; } }
 
    public int Categorie { get { return this.categorie; } }
 
    public decimal Prix { get { return this.prix; } }
 
    public int Cd { get { return this.CD; } }
 
    public DateTime DateParution { get { return this.dateParution; } }
 
    public int NbPages { get { return this.nbPages; }}
}
2- Le traitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
public partial class _Default : System.Web.UI.Page
{
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            ChargerListe();
        } 
    }
 
 
    void ChargerListe()
    {
            SqlConnection myConnection = new SqlConnection();
 
 
        myConnection.ConnectionString = "Data Source=PC-LAURENCE\\SQLEXPRESS; Initial Catalog=Librarie; Integrated Security=True;";
        myConnection.Open();
 
        // Requete SQL
        SqlCommand myCommande;
        myCommande = new SqlCommand("SELECT Titre, ISBN from Ouvrages", myConnection);
        SqlDataReader lecteur = myCommande.ExecuteReader();
 
 
        List<Book> books = new List<Book>();
        while (lecteur.Read())
        {
            books.Add(new Book(lecteur["Titre"].ToString(), lecteur["ISBN"].ToString()));
        }
        DdlBooks.DataSource = books;
        DdlBooks.DataTextField = "BookTitle";
        DdlBooks.DataValueField = "Isbn";
        DdlBooks.DataBind();
 
        lecteur.Close();
        myConnection.Close();
    }
 
 
    protected void DdlBooks_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DdlBooks.SelectedIndex > -1)
        {
            LbBook.Text = DdlBooks.SelectedItem.Text;
            LbIsbn.Text = DdlBooks.SelectedValue;
        }
    }
    protected void Confirmer_Click(object sender, EventArgs e)
    {
        // Instatiation de l'objet Book
 
        Book NewBook = new Book(TxtIsbn.Text, TxtTitre.Text, TxtAuteur.Text, int.Parse(TxtCategorie.Text), decimal.Parse(TxtPrix.Text), int.Parse(TxtCD.Text), DateTime.Parse(TxtParution.Text), int.Parse(TxtPage.Text));
 
        if (Page.IsValid)
        {
            // Connexion à la DB
            // 1° Declaration de l'Objet connexion et création de l'objet
            SqlConnection myConnection = new SqlConnection();
 
            // 2° Ecriture de la chaine de connexion
            myConnection.ConnectionString = "Data Source=PC-LAURENCE\\SQLEXPRESS; Initial Catalog=Librarie; Integrated Security=True;";
            myConnection.Open();
 
            // Requete SQL
            SqlCommand myCommande;
            myCommande = new SqlCommand("Insert INTO Ouvrages (ISBN, Titre, Auteur, Catégorie, Prix, CD, DateParution, NbPages) VALUES('" + TxtIsbn.Text + "', '" + TxtTitre.Text + "', '" + TxtAuteur.Text + "','" + int.Parse(TxtCategorie.Text) +"','"+ decimal.Parse(TxtPrix.Text) +"', '"+ int.Parse(TxtCD.Text) +"', '"+ DateTime.Parse(TxtParution.Text) +"', '"+ int.Parse(TxtPage.Text) +"')", myConnection);
            myCommande.ExecuteReader();
 
        }
 
    }
}