Potrebbe essere il formato della data a romperti le balle...
Ti conviene convertirlo nel formato yyyy-MM-dd (anno, mese, giorno)
Se scatta una eccezione, per vedere qual'è ti conviene mettere un try catch in cui fai la stessa operazione dell'else ma mettendo in output l'eccezione stessa.
Seconda cosa: Per come hai scritto il codice, anche in caso di "E' Successo un errore, riprova" la lblStatus viene valorizzata con "Iscrizione avvenuta correttamente ". Mi sono permesso di spostartelo dentro nell'if.
codice:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Drawing;
using System.ComponentModel;
using System.Text;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mail;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.OleDb;
using System.Xml.Linq;
public partial class Newsletter_Default : System.Web.UI.Page
{
public void btnSend_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
try{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=http://www.assarte.it/App_Data/Newsletter.mdb");
con.Open();
string cmdstr = "INSERT INTO Newsletter (Nome,Città,Email,Data) VALUES( ('" + Nome.Text + "'),('" + Città.Text + "'),('" + Email.Text + "'),('" + Data.Text + "'))";
OleDbCommand aCommand = new OleDbCommand(cmdstr, con);
OleDbDataReader aReader = aCommand.ExecuteReader();
//close the reader
aReader.Close();
//close the connection Its important.
con.Close();
lblStatus.Text="Iscrizione avvenuta correttamente ";
catch(Exception ex)
{
lblResult.Text = ex.message;
}
}
else
{
lblResult.Text = "E' Successo un errore, riprova";
}
//lblStatus.Text="Iscrizione avvenuta correttamente ";
}
}