|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
[ASP.NET] Errore query sul server
Ciao ho scritto questo codice in C#. E' una semplicissima applicazione web in ASP.NET che aggiunge un record in un database Access utilizzando la query SQL INSERT INTO. Sul mio PC ho installato il server di sviluppo ASP.NET della Microsoft e l'applicazione con quello funziona ma quando da Visual Studio 2005 la pubblico sul server web, arrivato all'istruzione ExecuteNonQuery() il server mi restituisce questo errore: Operation must use an updateable query.
Ecco il codice che ho scritto: Questo è il codice sorgente della pagina (Default.aspx.cs): Codice:
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Forum
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Forum.components.mbdataaccess Pippo = new Forum.components.mbdataaccess(Server.MapPath("MessageDb.mdb"));
OleDbException ex;
ex = Pippo.addMessage("'Pippo'", "'Provatr'", "'Provas'", "'lopo@poli'", "'9'");
Label1.Text = ex.Message;
}
}
}
Codice:
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Forum.components
{
public class mbdataaccess
{
private string ServerPath;
private string connection;
public mbdataaccess(string ServerPath)
{
this.ServerPath = ServerPath;
connection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + ServerPath + ";" +
"Persist Security Info=False";
}
public OleDbException addMessage(string MsName, string MsMessage, string MsSubject, string MsEmail, string GpID)
{
string ID = "11";
string addMessage = "INSERT INTO Message " +
"(MsID, MsName, MsMessage, MsSubject, MsEmail, GpID, MsDate) " +
"VALUES (" + ID + ", " + MsName + ", " + MsMessage + ", " + MsSubject + ", " + MsEmail + ", " + GpID +", '777')";
OleDbConnection connAddMess = new OleDbConnection(this.connection);
OleDbCommand cmdAddMess = new OleDbCommand(addMessage, connAddMess);
cmdAddMess.CommandType = CommandType.Text;
connAddMess.Open();
try
{
cmdAddMess.ExecuteNonQuery();
}
catch (OleDbException ex)
{
return ex;
}
connAddMess.Close();
OleDbException e = null;
return e;
}
}
}
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1232
|
Quote:
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
come puoi vedere dal mio codice io ho scritto cmdAddMess.ExecuteNonQuery(); però mi da quell'errore.
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1232
|
non c'è qualcosa del tipo update?
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
c'è cmdAddMess.UpdatedRowSource ma è una proprietà non un metodo!
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
probabile problema di permessi.
controlla se l'utente "internet guest account" (o il gruppo everyone del quale fa parte) ha il permesso di scrittura sia sul file mdb che sulla cartella che lo contiene! in caso negativo assegnalo e riprova, in caso positivo boh, ne riparleremo 'iao |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
ah, controlla anche che il file non sia in sola lettura!
ah 2, le eccezioni non si usano così! 'iao |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
ho aggiunto il gruppo everyone e gli ho assegnato tutti i permessi per la scrittura e lettura del file. però ancora mi da quell'errore Operation must use an updateable query.
se vuoi vai sul direttamente sul sito e clicca sul bottone che contiene le operazioni di aggiunta del record così vedi direttamente il messaggio di errore che restituisce il server. l'indirizzo è questo: http://www.hobbyelettronica.it |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
hai controllato se il file è in sola lettura?
sei sicuro di non violare alcun vincolo referenziale con quella query? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
mi sa che ho cannato utente
l'utente corretto a cui assegnare i privilegi dovrebbe chiamarsi "ASPNET" |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
allora nessuno mi sa aiutare???
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:15.




















