1.245 messaggi dal 03 marzo 2004
Ado.Net - ragioniamoci insieme
Vedo che quello di Ado.Net è un argomento ostico un po' a tutti...
Non è che partendo da un semplice problema proviamo a fare un mini tutorial su come:

1- inserire dati e salvarli su un db
2- visualizzare i dati inseriti
3- modificare i dati inseriti

---
Punto 1:

-Ho creato una web form con due campi (nome e cognome)e fino a qui ci sono...
- adesso vorrei che premendo il tasto "salva" questi nomi finissero nel db access che ho già creato, ma come???

Per ora ho creato una classe (Access.cs) con una stringa di connessione:

static string connString =@"Driver={Microsoft Access Driver (*.mdb)};DBQ="+ ConfigurationSettings.AppSettings["accessString"];

e poi???

---
sui punti 2-3 è meglio focalizzarcisi sopra dopo!

P.S. Tutto in C#
Modificato da Sonika il 05 agosto 2004 16.08 -

L'infinito è... ASP.NET
2.198 messaggi dal 30 novembre 2001
...e poi devi aggiungere dei metodi per visualizzare e modificare i dati inseriti, quindi un metodo che accetta una stringa che sarà utilizzata per la query sul db.
Uno per l'inserimento, uno per l'aggiornamento e uno per la cancellazione.
Non so se ti sono stato d'aiuto.
20 messaggi dal 22 luglio 2003
Ciao Sonika,
dopo aver aperto la connessione con il metodo .Open() nn resta ke effettuare una query ke inserisca i 2 dati nel DB.
Purtroppo nn so nulla di C# ma dovresti cmq capire in VB......
Dim cmsUpdate As New OleDbCommand ("INSERT INTO NomeTabella ( ColonnaNome, ColonnaCognome ) VALUES ('" & TextBoxNome.Text & "', '" & TextBoxCognome.Text & '" ), NomeConnessione)
cmdUpdate.ExecuteNonQuery()
NomeConnessione.Close()
Ora hai il new record inserito.....

P.S. devi importare System.Data & System.Data.OleDb

bye juk
1.245 messaggi dal 03 marzo 2004
Il mio problema principale nasce proprio da quello...
Ho scritto una classe, ma sul System.Data.Oledb mi da questo errore:

C:\Inetpub\wwwroot\FormSalvaDb\Access.cs(2): The type or namespace name 'OleDB' does not exist in the class or namespace 'System.Data' (are you missing an assembly reference?)


è il framework che non lo supporta (1.0) mi sa e non capisco le alternative...

L'infinito è... ASP.NET
2.198 messaggi dal 30 novembre 2001
ricordati che c# è case sensitive, quindi devi scrivere: System.Data.OleDb, infatti ti dice che non trova la classe o namespace OleDB che non esiste.
1.245 messaggi dal 03 marzo 2004
Ho sistemato alcune cose e per ora quella parte funziona... adesso ho probelmi a far capire che al click del bottone salva i dati contenuti nella form devono salvarsi sul db...
Dunque:

WebForm1.aspx


<form id="Form1" method="post" runat="server">
<P>
Nome:
<asp:TextBox id="txtbNome" runat="server"></asp:TextBox><BR>
Cognome:
<asp:TextBox id="txtbCognome" runat="server"></asp:TextBox><BR>
<asp:Button id="But_salva" runat="server" Text="Salva"></asp:Button></P>

</form>



Access.cs


using System;
using System.Data.OleDb;

namespace FormSalvaDb
{
/// <summary>
/// Summary description for Access.
/// </summary>
public class Access
{
public Access()
{

}
static string connString =@"Driver={Microsoft Access Driver (*.mdb)};DBQ="+ System.Configuration.ConfigurationSettings.AppSettings["accessString"];

public static void insertRecord (string tableName, string nome, string txtbNome, string cognome, string txtbCognome)
{
OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
OleDbCommand comm = new OleDbCommand("insert into " + tableName + " ( " + nome + "," + cognome + ") values ( " + txtbNome + "," + txtbCognome + ")",conn);

comm.ExecuteNonQuery();
}
}
}



E nel file WebForm1.aspx.cs al click faccio questo:

private void But_salva_Click(object sender, System.EventArgs e)
{
string tableName = "persone";
string nome = "nome";
string cognome = "cognome";
Access.insertRecord( tableName, nome, txtbNome, cognome, txtbCognome);
}



Errori:
1- C:\Inetpub\wwwroot\FormSalvaDb\WebForm1.aspx.cs(58): The best overloaded method match for 'FormSalvaDb.Access.insertRecord(string, string, string, string, string)' has some invalid arguments
2- C:\Inetpub\wwwroot\FormSalvaDb\WebForm1.aspx.cs(58): Argument '3': cannot convert from 'System.Web.UI.WebControls.TextBox' to 'string'
3- C:\Inetpub\wwwroot\FormSalvaDb\WebForm1.aspx.cs(58): Argument '5': cannot convert from 'System.Web.UI.WebControls.TextBox' to 'string'

L'infinito è... ASP.NET
2.198 messaggi dal 30 novembre 2001
il bello di asp.net è che gli errori di asp.net sono abbastanza chiari per cui certe volte se ci si sofferma un pò di più sull'errore ricevuto la correzione è facile:
1 l'errore è conseguenza degli errori 2 e 3;
2 al metodo insert gli passi un TextBox mentre si aspetta una stringa, quindi devi scrivere: txtbNome.Text per passargli il valore
3 come sopra.
1.245 messaggi dal 03 marzo 2004
Grazie :) infatti adesso il debug non da più errori... (hem sto cercando di imparare anche il c# che è parecchio ostico per quanto mi riguarda)

Adesso compare un errore quando inserisco i dati


An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.

Source Error:


Line 21: {
Line 22: //creo l'oggetto connection e gli passo la stringa di connessione
Line 23: OleDbConnection conn = new OleDbConnection(connString);
Line 24: //faccio l'Open della connessione
Line 25: conn.Open();


Source File: c:\inetpub\wwwroot\formsalvadb\access.cs Line: 23




Il mio web config è così:



<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key= "accessString" value="C:\inetpub\wwwroot\FormSalvdDb\prova.mdb" />
</appSettings>

....


L'infinito è... ASP.NET

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.