Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Connessione Database MySql con aspx

    Salve a tutti, sto creando un semplice social network che ho intenzione di portare all'esame, ma ho un problema riguardante la connessione al database MySql con una pagina .aspx .
    Posto parte del sorgente aspx (chiamato default.aaspx) per darvi un idea:

    <div id="dvRegistrazione" runat="server">
    <table id="tableReg" align="center">
    <tr>
    <th colspan="2" align="left"> <h4>Non sei ancora registrato? Registrati ora!</h4></th>
    </tr>
    <tr>
    <td><h1 class="scrittura">Nome</h1>
    <asp:TextBox id="txtNomeUser" runat="server" name="nome" onDblClick="this.value=''"> </asp:TextBox>
    </td>
    </tr>

    <tr>
    <td>
    <h1 class="scrittura">Password (max 30 caratteri)</h1>
    <asp:TextBox id="txtPassReg" runat="server" TextMode="Password" name="password" MaxLength="30" onDblClick="this.value=''"> </asp:TextBox>
    </td>
    </tr>
    Questo codice, con un Button "Registrati" mi rimanda ad una pagina "registrato.aspx" dove i dati verranno registrati nel database e mi ridarą una striga :" registrazione avvenuta!".
    Il problema sorge quando, come accennato sopra, tento di inserire i dati della registrazione nel database.
    Questo č il codice che ho utilizzato per la connessione e l'inserimento dei dati:

    protected void Page_Load(object sender, EventArgs e)
    {
    MySqlConnection MyConn = new MySqlConnection();
    MyConn.ConnectionString = "Server=localhost; Port=n°porta; DATABASE=nomedb; UID=user; PWD=pass";

    MyConn.Open();

    string Nome = Request.Form["nome"];
    string Cognome = Request.Form["cognome"];
    string Password = Request.Form["password"];
    string Email = Request.Form["email"];
    string Sesso = Request.Form["sesso"];

    //crea l'oggetto command
    MySqlCommand MyComm = MyConn.CreateCommand();

    // imposta il tipo di comando
    MyComm.CommandType = CommandType.Text;

    MyComm.CommandText = "INSERT INTO ACCOUNT(NOME, COGNOME, PASSWORD, EMAIL, SESSO) VALUES (" + Nome + "," + Cognome + "," + Password + "," + Email + "," + Sesso + ");";

    MyComm.ExecuteNonQuery();

    MyConn.Close();

    }
    N.B. le librerie MySql.Data; MySql.Data.MySqlClient; System.Data sono state inserite.
    P.S il messaggio ( o meglio parte del messaggio) di errore che mi ritorna č il seguente:

    (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,,)'.

    Non capisco come mai mi dia questo errore, se provo ad inserire i dati da mysql Query Browser nello stesso modo non mi crea problemi :/
    Spero possiate aiutarmi. Grazie

  2. #2
    controlla il valore di MyComm.CommandText, pare che tu stia inserendo dei valori vuoti

  3. #3
    Ho appena provato.
    Questa era la riga di codice precedente:

    MyComm.CommandText = "INSERT INTO ACCOUNT(NOME, COGNOME, PASSWORD, EMAIL, SESSO) VALUES (" + Nome + "," + Cognome + "," + Password + "," + Email + "," + Sesso + ");";

    Adesso l'ho cambiata nel seguente modo:

    MyComm.CommandText = "INSERT INTO ACCOUNT(NOME, COGNOME, PASSWORD, EMAIL, SESSO) VALUES ('Stefano', 'Dalla Palma', 'miapass', 'stefanodallapalma@hotmail.it', 'M');";

    Ho controllato con MySql Query Browser ed effettivamente me l'ha registrato.
    Il problema č che io devo prendere i valori delle textbox presenti nella pagina di registrazione "default.aspx". Come mai con il Request.Form non funziona ??

  4. #4

    RISOLTO

    non bisogna mettere la proprietą name perchč il framework lo aggiunge da sč.

    <asp:TextBox ID="txtNomeUser" runat="server" name="nome" onDblClick="this.value=''"> </asp:TextBox>

    viene reso con
    <input name="txtNomeUser" type="text" id="txtNomeUser" name="nome" onDblClick="this.value=''" />

    Va quindi scritta in questo modo :

    <asp:TextBox id="txtNomeUser" runat="server" onDblClick="this.value=''"> </asp:TextBox>

    Successivamente nella pagina default.aspx.cs nell'evento Button_click vado richiamare i dati da inserire nel database in questo modo:

    string Nome = Request.Form["txtNomeUser"];
    string Cognome = Request.Form["txtCognomeUser"];
    string Password = Request.Form["txtPassReg"];
    string Email = Request.Form["txtEmailReg"];
    string Sesso = Request.Form["sesso"];
    N.B. dato che l'opzione per il sesso č un radioBox, la scritta "sesso" che sta tra parentesi fa parte della proprietą GroupName.
    <h1 class="scrittura">Sesso</h1>
    M<asp:RadioButton id="M" runat="server" GroupName= "sesso"/> F... </asp:RadioButton>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.