33 messaggi dal 06 settembre 2002
Questo codice:

<%@ Page Language="C#" AutoEventWireup="true"   %>
<%@ Import Namespace = "System.Data" %>
<%@ Import Namespace = "System.Data.OleDb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Pagina senza titolo</title>
</head>
<body>

<script language=C# runat=server>
 


    protected void Button1_Click(object sender, EventArgs e)
    {
string txtNome = Request.Form["txtNome"].ToString();
    string txtCognome = Request.Form["txtCognome"].ToString();
        String Scn = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Server.MapPath("Clienti.mdb");
        OleDbConnection cn = new OleDbConnection(Scn);
        cn.Open();
        OleDbCommand cmd = new OleDbCommand("INSERTO INTO Categories (Nome, Cognome) VALUE (?,?)", cn);
        OleDbParameter par1 = new OleDbParameter("txtNome", OleDbType.WChar, 50);
        OleDbParameter par2 = new OleDbParameter("txtCognome", OleDbType.WChar, 50);
        par1.Value = txtNome;
        par2.Value = txtCognome;
        cmd.Parameters.Add(par1);
        cmd.Parameters.Add(par2);
        <b>OleDbDataReader res = cmd.ExecuteNonQuery();</b>
    }
</script>

Quando lo eseguo, compilo i due campi del form, clicco su invia, e mi genera l'errore alla riga evidenziata(OleDbDataReader res = cmd.ExecuteNonQuery();)

mi dice:

Cannot implicitly convert type 'int' to 'System.Data.OleDb.OleDbDataReader

dove sbaglio?

            
    
                           
     
    <form id="form1" runat="server" >
    <div>
        NOME:
        <asp:TextBox ID="txtNome" runat="server"></asp:TextBox><br />
        COGNOME:
        <asp:TextBox ID="txtCognome" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button1" runat="server" onClick="Button1_Click" Text="Inserisci" /></div>
    </form>
</body>
</html>

3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

Il metodo ExecuteNonQuery non torna un datareader, ma un int che dice quante righe sono state coinvolte nel comando lanciato sul database.

quindi:

int i = cmd.ExecuteNonQuery();

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.