Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21

    help con db access con c#

    salve a tutti. io generalmente non uso c# ma al momento sono obbligato per cui vorrei chiedere se esiste un modo per fare quanto vi chiedo. in più vorrei salvare nel web.config, in connectionstrings la stringa per la connessione al db access. usango Jet 4.0
    tenendo presente che il db è "/mdb-database/miodb.mdb", un db per tutta l'applicazione.

    in asp avrei fatto così:

    Set Conn blablabla bla Microsoft.Jet.4.0... bla bla bla...
    Conn.Open
    Rs.Open "SELECT * FROM miaTbl WHERE ID='" & miaVar& "', Conn, 3, 3

    mioDato=Rs("miaCella")

    Rs.Close
    Set Rs=Nothing
    Conn.Close
    Set Conn=Nothing


    In c# come faccio?

    ho provato tanti modi, ma c'era sempre qualcosa che andava storto.
    con somma vergogna ho provato a fare un copia-incolla da msdn, ma nada.. e la cosa che più mi fa strano è che una volta ci riuscivo (sempre sullo stesso spazio)

    per cui vi chiedo di farmi un esempio di come fareste, in web.config e poi utilizzare la connectionstring nella pagina partendo dall'esempio che vi ho fatto.

    Grazie mille in anticipo.

  2. #2
    Per il web.config ho scritto un articolo proprio ieri (che coincidenza):
    http://www.robertoconterosito.com/20...25/web-config/
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    Originariamente inviato da RoBYCoNTe
    Per il web.config ho scritto un articolo proprio ieri (che coincidenza):
    http://www.robertoconterosito.com/20...25/web-config/
    Articolo ben fatto, ma il mio problema è, purtroppo, differente.

  4. #4
    il tuo problema è l'intera esecuzione del comando in C#?
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    Originariamente inviato da RoBYCoNTe
    il tuo problema è l'intera esecuzione del comando in C#?
    è "fare" quello che ho scritto in asp in c# usando una connectionstring a db access settata in web.config

    onestamente non mi spiego il perchè non funzioni

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    non uso c# perciò bisogna fare attenzione

    nella pagina ho messo un literal

    <asp:Literal ID="Literal1" runat="server"></asp:Literal>

    nel codice, leggo i dati scrivendo una tabella che metterò nel literal
    codice:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.OleDb;
    using System.Text;
    
    public partial class prove_c : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
            using (OleDbConnection con = new OleDbConnection(gl.StringaConnessione))
            {
                con.Open();
                OleDbCommand comand = con.CreateCommand();
                comand.CommandText = "select * from campi";
    
                using (OleDbDataReader reader = comand.ExecuteReader())
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<table border=\"1\">");
                    sb.Append("<tr>");
                    for (int i = 0; i < reader.FieldCount; i++) sb.Append("<th>" + reader.GetName(i) + "</th>");
                    sb.Append("</tr>");
    
                    while (reader.Read())
                    {
                        sb.Append("<tr>");
                        for (int i = 0; i < reader.FieldCount; i++) sb.Append("<td>" + NullToString(reader[i]) + "</td>");
                        sb.Append("</tr>");
                    }
                    sb.Append("</table>");
                    this.Literal1.Text = sb.ToString();
                }
    
            }
    
        }
    
        protected string NullToString(object v)
        {
            if (v == System.DBNull.Value) return ""; else return v.ToString();
        }
    }

    nel web.config ho la stringa di connessione
    codice:
    <connectionStrings>
    	<add name="StringaConnessione" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb"/>
    </connectionStrings>
    nella directory App_Code mi faccio una classe con metodi statici
    codice:
    using System;
    using System.Data;
    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;
    using System.Text.RegularExpressions;
    
    public static class gl
    {
        public static string StringaConnessione
        {
            get
            {
                return ConfigurationManager.ConnectionStrings["StringaConnessione"].ConnectionString;
            }
        }
    
    }
    Pietro

  7. #7
    ti restituisce un particolare messaggio di errore?
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    ho riconfigurato IIS7 su win7 a casa giusto adesso, la cosa strana è che in locale va quando lo sposto sull'hosting nada de nada.

    ho fatto grosso modo queesto: ho aggiunto a connectionstrings la connessione con la stringa classica provider/source/pass e poi da pagina ho usato confiugration.connectionstrings["miaconnessione"].connectionstring

    sul mio pc in prova va mentre sull'hosting niente, e la cosa mi fa molto strano perchè via asp normale con vbscript funziona benissimo, addirittura una connessione da xml va bene, ma con c# non va. non mi da errore, proprio il debugger non lo manda giù. ho provato ad usare anche l'oggetto consigliato dal debugger.
    ho aggiunto la connessione come nuovo oggetto ole (comando = nuovo oggetto OleCommand). sempre nada.
    proverò a rifarlo stanotte con visual studio 2010 (sempre che non crashi ancora), detesto il c# proprio per ste ragioni, è semplice ma ogni tanto mi capitano errori stupidi che non riesco a risolvere, e quando ci riesco scopro che era una stupidaggine assurda.
    ho provato anche con dei copia-incolla da vari siti e metodi strani.

    sono due notti che ci perdo il sonno

  9. #9
    non ho capito molto bene, quindi in locale funziona, sul server no?
    Significa che la connection string su server è sbagliata, ovviamente se tenti di connetterti su un server che non fà parte dell'hosting, dall'hosting stesso, sei già fuori strada!
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    In pratica ho "risolto" facendo così

    codice:
    		OleDbDataReader dsFinder;
    		
    		OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["LocalAccessDB"].ConnectionString);
    		conn.Open();
    		OleDbCommand ds = new OleDbCommand("SELECT * FROM CustErrors", conn);
    		dsFinder = ds.ExecuteReader();
    		try
    		{
    			while (dsFinder.Read())
    			{
    				if (PagLang == Convert.ToString(dsFinder["Lang"]))
    				{
    					Response.Write(dsFinder["Description"]);
    				}
    			}
    		}
    		finally
    		{
    			dsFinder.Close();
    			conn.Close();
    		}
    Per ora funziona, è una prova che sto facendo in una pagina che funzionerebbe esternamente alla totalità dell'applicazione. poi tenterò di inserire questo in un contesto globale.

    Secondo voi può andare o devo aspettarmi qualche scherzo?

    ah PagLang è una stringa
    codice:
    string PagLang = Convert.ToString(Request.ServerVariables["http_accept_language"]).Substring(0, 2);
    Putroppo la logica del c# è diversa dalla mia, io sono un tipo più pratico, però sono costretto ad usare c#

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.