ConfigurationManager   zodpovězená otázka

VB.NET, ASP.NET WebForms, Visual Studio, Databáze

Zdravím. Dělám asp.net aplikaci, ve které chci mít již vytvořenou třídu (knihovnu dll) pro obsluhu databáze. Do této třídy jsem jen chtěl přidat funkci, která by natáhla connectionstring z web.configu. Zkoušel jsem

Dim connStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("MojeDatabaze").ConnectionString

' nebo

Dim cfg As System.Configuration = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)

ale Visual studio express 2010 mi vše podtrhá s tím, že ConfigurationManager není člen třídy configuration. Googlil jsem, ale nic nevygooglil. Dělám něco blbě nebo je to tím, že používám express verzi?

Je možnost si z té knihovny vůbec načíst z webconfigu connectoinstring? A jak?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přidejte do projektu referenci na System.Configuration.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hm, to tam samozřejmě mám. V tom to bohužel nebude.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přidejte do projektu referenci na System.Web

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Taky nestačí.. Myslím, že to je tím,že používím express verzi, ale rád bych, aby mi to někdo potvrdil. Zde je jednoduchá třída pro vyzkoušení

' knihovna dll
Imports System.Web
Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Collections.Specialized 'někdo na webu doporučil i referenci na tuto kolekci
Namespace myNamespace
    Public Class Class1

        ' tady mám zatím natvrdo nastavený connectionstring, který chci nahradit 
        Public Shared MyConStr As String =
         "Data Source=PC\SQLEXPRESS;Initial Catalog='C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\MOJEDATABAZE.MDF';Integrated Security=True"


        Public Shared Function GetCount() As String


            'visual studio express podtrhá jako chybné tyto varianty
            'MyConStr = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("MyConStr").ToString()

            'nebo
            'MyConStr = System.Configuration.ConfigurationManager.ConnectionStrings("MyConStr").ConnectionString

            'nebo pokus získat kolekci connectionStringů
            'Dim connectionStrings As ConnectionStringSettingsCollection = TryCast(WebConfigurationManager.ConnectionStrings, connectionStringSettingsCollection)



            Dim comStr As String = "SELECT COUNT(IdPerson) AS cnt FROM Person"
            Dim cnt As String

            Using con As New SqlConnection(MyConStr)
                Using com As New SqlCommand(comStr, con)
                    con.Open()
                    cnt = com.ExecuteScalar
                    con.Close()
                End Using
            End Using
            Return cnt

        End Function

    End Class
End Namespace

Pokud to někdo zkusí ve "velkém" visual studiu a potvrdí mi, že tam to jde, budu rád, budu to muset v express verzi "zbastlit" jinak.

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tohle určitě není tím, jestli máte Express edici nebo velké VS - kompilátor je úplně stejný a .NET taky, bez ohledu na edici VS.

Opravdu v tom projektu máte referenci? Nestačí mít jenom nahoře Imports System.Configuration, musíte ještě otevřít vlastnosti projektu a na záložce references přidat knihovnu System.Configuration (ze sekce .NET), aby věděl, kde ten namespace má hledat. Název namespace totiž nutně nemusí být stejný s názvem knihovny (assembly).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jo, díky, to je ono. Já na tohle zase zapomněl, programování není moje práce, jen občas když něco potřebuju pro sebe nebo pro kamarády. A pak se tím takhle prokousávám pořád dokola:-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Neni potreba to "zbastlit jinak" ...

Oboji funguje:

'visual studio express podtrhá jako chybné tyto varianty
            'MyConStr = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("MyConStr").ToString()

            'nebo
            'MyConStr = System.Configuration.ConfigurationManager.ConnectionStrings("MyConStr").ConnectionString

            'nebo pokus získat kolekci connectionStringů
            'Dim connectionStrings As ConnectionStringSettingsCollection = TryCast(WebConfigurationManager.ConnectionStrings, connectionStringSettingsCollection)

Jen musimte pridat referenci jak je psano vyse.

A nestaci jen

Imports System.Web
Imports System.Configuration

pridani referecne je mysleno, vpravo v solution exploreru dejte pravy tlacitko na projekt a dejte "Add Reference" a tam si pridejte tyto reference.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback