Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211

    asp.net con c# problema connessione sql server 2005

    come da titolo ho un problema di connessione ad un database sql server 2005 creato su [nomecomputer]\SQLEXPRESS ;

    ho qst pagine:

    1. default.aspx.cs


    using System;
    using System.Data;
    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;

    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    DataSet DSet = new DataSet();
    string Cnnstr = System.Configuration.ConfigurationSettings.AppSett ings["CN1"].ToString();
    bool ret = false;

    ret = clsFunctions.LoadDataSetFromSqlStatement(Cnnstr, "SELECT cognome FROM utente", "PROVA", ref DSet, true);

    if (ret == true)
    {
    DSet.Tables["PROVA"].Rows[0]["cognome"].ToString();
    System.Console.Write(DSet.Tables["PROVA"].Rows[0]);
    }
    else
    { Response.Write("c'è un errore"); }
    }
    }



    2. web.config

    <?xml version="1.0"?>

    <configuration>
    <appSettings>

    <add key="CN1" value="Data Source= WXP-ILARIA\\SQLEXPRESS;Initial Catalog=utenti.mdf;User Id=myUsername;Password=myPassword;" />

    </appSettings>


    <system.web>

    <authentication mode="Forms" />
    <compilation debug="true" explicit="true" />
    <pages>
    <namespaces>
    <clear />
    <add namespace="System" />
    <add namespace="System.Collections" />
    <add namespace="System.Collections.Specialized" />
    <add namespace="System.Configuration" />
    <add namespace="System.Text" />
    <add namespace="System.Text.RegularExpressions" />
    <add namespace="System.Web" />
    <add namespace="System.Web.Caching" />
    <add namespace="System.Web.SessionState" />
    <add namespace="System.Web.Security" />
    <add namespace="System.Web.Profile" />
    <add namespace="System.Web.UI" />
    <add namespace="System.Web.UI.WebControls" />
    <add namespace="System.Web.UI.WebControls.WebParts" />
    <add namespace="System.Web.UI.HtmlControls" />
    </namespaces>
    </pages>


    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
    <error statusCode="403" redirect="NoAccess.htm" />
    <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>


    </system.web>
    </configuration>

    3. foglio in App_Code che esegue la funzione.... (riporto solo la parte in questione):

    static public bool LoadDataSetFromSqlStatement(string CnnStr, string SqlStatement, string TableName, ref DataSet DtSet, bool ClearTable)
    {
    SqlDataAdapter DtAdp;
    SqlConnection Cnn = new SqlConnection(CnnStr);

    try
    {
    //clear table
    if (ClearTable == true) {
    if (DtSet.Tables[TableName] != null) {
    DtSet.Tables[TableName].Clear(); } }
    //check if there are no connections opened
    if (Convert.ToBoolean(Cnn.State) == false) {
    Cnn.Open(); }

    DtAdp = new SqlDataAdapter(SqlStatement, Cnn);
    DtAdp.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    DtAdp.Fill(DtSet, TableName);
    DtAdp.Dispose();

    return true;
    }
    catch (System.Exception myError)
    {
    return false;
    }
    finally
    {
    Cnn.Close();
    Cnn.Dispose();
    }

    }

    il database è nella cartella creata da server 2005 e non nellacartella del sito che è in inetpub\wwwroot; l'errore è che la funzione ret restituisce false a causa della mancata connessione al database, mentre dovrebbe restituire true se questo si è connesso e ha ricevuto i dati... qlk idea di cosa non va nel codice postato?

    ciao e grazie :P

  2. #2
    Ciao,
    la prima cosa che mi viene in mente è la voce appsettings nel file web.config.

    Dovrebbe essere così:

    <appSettings>

    <add key="CN1" value="Data Source=WXP-ILARIA\SQLEXPRESS;Initial Catalog=utenti;User Id=myUsername;Password=myPassword;" />

    </appSettings>

    Ciao
    Matteo
    ---------------------------
    www.matteopenna.it

  3. #3
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211
    ciao, grazie per la pronta risposta.... ho provato a cambiare la stringa come mi hai descritto tu... ma mi restituisce sempre "false"... può dipendere da dove è messo il database?

    ciao e grazie ankora..

  4. #4
    Non dovrebbe dipendere dal percorso fisico del Db.
    L'utente che esegue la tua applicazione ha i permessi per accedere al database?
    Matteo
    ---------------------------
    www.matteopenna.it

  5. #5
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211
    si xkè non ho messo nessun tipo di salvaguardia dei dati, tutti possono accedere.. senza aver bisogno fisicamente di una password...

  6. #6
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211
    Originariamente inviato da lila89
    si xkè non ho messo nessun tipo di salvaguardia dei dati, tutti possono accedere.. senza aver bisogno fisicamente di una password...

    non centrava come avevi detto.... ho risolto mettendo come stringa di connessione

    <add key="CN1" value="server=WXP-ILARIA\SQL2005;database=utenti;Integrated Security=true" />

    ora ho un altro problema (se no nsi fosse capito non sono molto esperta..).. come faccio a mostrare a video il contenuto del dataset? sempre usando c#?

    perchè l pezzo di codice ----- >

    DSet.Tables["PROVA"].Rows[0]["cognome"].ToString();
    System.Console.Write(DSet.Tables["PROVA"].Rows[0]);

    non restituisce niente a video... ciao e grazie ankora..

  7. #7
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211
    risolto anche per la visualizzazione del dataset, basta scrivere :

    DSet.Tables["PROVA"].Rows[0]["cognome"].ToString();
    GridView1.DataSource = DSet;
    GridView1.DataBind();


    ma se io accedo ai dati senza dataset? come si va visaualizzare i dati?

  8. #8
    Se tu richiami i task della GridView (facendo click sul pulsantino con il simbolo > che appare nell'angolo in alto a destra della gridview quando questa è selezionata) puoi scegliere la voce Choose Data Source (non so come sia la traduzione in italiano) e poi dal menu a discesa "New Data Source".
    In questo modo richiami una procedura che si occuperà di creare una sorgente dati per la tua gridview partendo da ciò che vuoi. Se hai la versione 2008 dell'ambiente di sviluppo avrai la voce "database". Scegliendola verrai guidata nella configurazione della sorgente dati a partire da un db SQL Server 2005.

    ciao
    Matteo
    ---------------------------
    www.matteopenna.it

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.