39 messaggi dal 17 aprile 2017
Salve a tutti, sto creando la procedura per salvare i dati delle vaire textbox e dropdownlist di una pagina in un db sql, ho scritto queste righe di cosice ma non funziona, nel senso che non mi restituisce nessun errore, ma non scrive i dati nel db, potete darmi una mano a correggere gli errori, grazie infinitamente.


Nella pagina web ho questo pulsante:

<div style="float:left; padding-top:initial">
<asp:Button ID="SalvaDati" runat="server" Text="Salva i Dati" />
</div>


Nella pagina vb queste istruzioni:

Private Sub SalvaDati_Click(sender As Object, e As EventArgs) Handles SalvaDati.Click

Try

Dim strConnString1 As String = ConfigurationManager.ConnectionStrings("miodbConnectionString1").ConnectionString
Using con1 As New SqlConnection(strConnString1)

con1.Open()

Using cmd1 As New SqlCommand("INSERT INTO tbChiamate (RagSociale, Indirizzo) VALUE (@RagSociale, @Indirizzo)", con1)

cmd1.Parameters.Add("@RagSociale", SqlDbType.VarChar).Value = DropDownList1.Text
cmd1.Parameters.Add("@Indirizzo", SqlDbType.VarChar).Value = txtIndirizzo

End Using

con1.Close()
con1.Dispose()

End Using

DropDownList1.Focus()

Catch ex As Exception
Throw ex
Finally
End Try

End Sub
3.939 messaggi dal 28 gennaio 2003
a occhio mi pare che manchi l'istruzione cmd1.ExecuteNonQuery()

ps. ho letto molto velocemente; se non è questo il problema, scusami
39 messaggi dal 17 aprile 2017
Grazie Pietro, in effetti mancava l'istruzione, mi è rimasta nella tastiera :-)
Però purtroppo il problema è rimasto, non mi torna alcun errore, ma i dati non li trovo nella tabella del DB.
Domanda da principiante.... non è che manca qualcosa nella pagina web?

Chiedo questo perche' ho notato che non mette neppure il focus sulla dropdownlist quando clicco sul bottone

Grazie ancora per l'aiuto.
3.939 messaggi dal 28 gennaio 2003
non uso mai sql server.
Però ho fatto un esempietto funzionante che usa System.Data.SqlServerCe

La tabella, chiamata tbChiamante, ha un campo id, integer identity, RagSociale, nvarchar, e indirizzo, nvarchar. Sotto il codice

pagina
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>

<!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 id="Head1" runat="server">
    <title></title>
    <link href="../App_Themes/classico10/StyleSheet.css" rel="stylesheet" type="text/css" />

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <label>Ragione sociale</label><br />
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem></asp:ListItem>
            <asp:ListItem Value="xxx" Text="xxx"></asp:ListItem>
            <asp:ListItem Value="yyy" Text="yyy"></asp:ListItem>
            <asp:ListItem Value="zzz" Text="zzz"></asp:ListItem>
        </asp:DropDownList>
        <br /><br /><br />
        <label>Indirizzo</label><br />
        <asp:TextBox ID="txtIndirizzo" runat="server"></asp:TextBox>
        <br /><br /><br />
        <asp:Button ID="SalvaDati" runat="server" Text="Button" />
        <br /><br /><br />
        <asp:Label ID="Label1" runat="server" Text="" EnableViewState="false"></asp:Label>

    </div>
    </form>

</body>
</html>


codice
Option Strict On
Imports o = System.Data.SqlServerCe

Partial Class prove_a
    Inherits System.Web.UI.Page


    Protected Sub SalvaDati_Click(sender As Object, e As System.EventArgs) Handles SalvaDati.Click
        Dim StringaConnessione As String = "Data Source=C:\tmp\test.sdf"
        Dim Connessione As o.SqlCeConnection = Nothing
        Dim Comando As o.SqlCeCommand = Nothing
        Dim Transazione As o.SqlCeTransaction = Nothing
        Dim Sql As String = ""

        Try
            Connessione = New o.SqlCeConnection(StringaConnessione)
            Connessione.Open()
            Transazione = Connessione.BeginTransaction()
            Comando = Connessione.CreateCommand()
            Comando.Transaction = Transazione


            Sql = "INSERT INTO tbChiamante (RagSociale, Indirizzo) VALUES (@RagSociale, @Indirizzo)"
            Comando.CommandText = Sql

            Comando.Parameters.Clear()

            Comando.Parameters.Add(New o.SqlCeParameter() With {.ParameterName = "@RagSociale", .DbType = DbType.String, .Size = 100, .Value = StringNullToDBNull(Me.DropDownList1.SelectedItem.Text)})
            Comando.Parameters.Add(New o.SqlCeParameter() With {.ParameterName = "@Indirizzo", .DbType = DbType.String, .Size = 100, .Value = StringNullToDBNull(Me.txtIndirizzo.Text)})

            Comando.ExecuteNonQuery()

            Transazione.Commit()
            'Transazione.Rollback()

            Me.Label1.Text = "Operazioni su database eseguite regolarmente"



        Catch ex As Exception
            Me.Label1.Text = HttpUtility.HtmlEncode(ex.Message).Replace(ControlChars.NewLine, "<br />").Replace(ControlChars.Lf, "<br />").Replace(ControlChars.Cr, "<br />")

        Finally
            If (Not (Connessione Is Nothing)) Then Connessione.Close()
        End Try

    End Sub

    '--------------------------------------------------------
    'Converte una stringa nulla in DBNull
    '--------------------------------------------------------
    Public Function StringNullToDBNull(ByVal s As String) As Object
        If String.IsNullOrWhiteSpace(s) Then
            Return DBNull.Value
        Else
            Return s.Trim
        End If

    End Function

End Class
39 messaggi dal 17 aprile 2017
Salve a tutti, sono tornato alla carica.
Grazie ai suggerimenti di Pietro per lo meno sono riuscito a far saltar fuori l'errore.
In pratica non scrive nel DB per questo motivo:

Sintassi non corretta in prossimità di 'VALUE'.


le righe di codice per l'insert sono:

cmd1.Parameters.Add("@RagSociale", SqlDbType.VarChar).Value = CStr(DropDownList1.Text)
cmd1.Parameters.Add("@Indirizzo", SqlDbType.VarChar).Value = CStr(txtIndirizzo.Text)

Vi pregooooooo!!! aiutatemi, ditemi dove sto sbagliando, non riesco a capire.

Grazie a tutti.
3.939 messaggi dal 28 gennaio 2003
Ciao.
Il codice che ho inviato è funzionante. Con le dovute modifiche si adatta ad Access o Oracle.
Non dici neanche che errore dà il codice. Così non è facile aiutarti.
39 messaggi dal 17 aprile 2017
Ciao Pietro,
come non dico l'errore, certo che l'ho messo e' questo:



Grazie ai suggerimenti di Pietro per lo meno sono riuscito a far saltar fuori l'errore.
In pratica non scrive nel DB per questo motivo:

Sintassi non corretta in prossimita' di 'VALUE'.


le righe di codice per l'insert sono:

Scusami se non l'ho evidenziato......
3.939 messaggi dal 28 gennaio 2003
Vi pregooooooo!!! aiutatemi, ditemi dove sto sbagliando, non riesco a capire

hai scritto questo o no? non ti funziona ancora il codice allora? che errore dà adesso?

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.