voyager18
20-08-2007, 12:59
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):
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;
}
}
}
E quest'altro è il codice della classe 'mbdataaccess' contenuta nel namespace 'Forum.components' che ho scritto io:
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;
}
}
}
Aiutatemi!!
Ecco il codice che ho scritto:
Questo è il codice sorgente della pagina (Default.aspx.cs):
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;
}
}
}
E quest'altro è il codice della classe 'mbdataaccess' contenuta nel namespace 'Forum.components' che ho scritto io:
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;
}
}
}
Aiutatemi!!