Avatar billede zyfer Nybegynder
19. november 2009 - 15:28 Der er 12 kommentarer og
1 løsning

Opsætning Dataset..

Hej..

Jeg har lavet et lille program der forbinder til en Microsoft SQL server, og henter data/Tabeller ind i programmet..

Mit problem er at jeg gerne vil ha en indstilling i programmet så man kan fortælle programmet hvor SQL-Serveren er. Altså kunne flytte programmet og så sætte forbindelsen op igen ( inde i programmet med Placering/database/Login info o.s.v. til Serveren)..

Da jeg er forholdsvis ny på området, ville det være rart med lidt hjælp.. er helt på bar bund her..

Jeg laver det i Visual Studio 2005....
Avatar billede arne_v Ekspert
19. november 2009 - 15:33 #1
put connection string i app.config
Avatar billede zyfer Nybegynder
19. november 2009 - 20:51 #2
Hej.. Tak for svaret, men kan du uddybe lidt, (Nybegynder..:-) )
Avatar billede arne_v Ekspert
20. november 2009 - 01:32 #3
Eksempel:

Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("ExpressTest").ConnectionString)

i koden og:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="ExpressTest"
            connectionString="Server=ARNEPC3\SQLEXPRESS;Integrated Security=SSPI;Database=Test"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

i app.config !
Avatar billede zyfer Nybegynder
20. november 2009 - 09:32 #4
Hej igen..

Det virker nu med App.Config, men det store spørgsmål er nu, hvordan ændre jeg den.

Jeg vil gerne ha en Form i programmet, hvor jag kan ændre de tre ting, Server / Databasen (i sql serveren)/ Bruger-password til sql serveren.
------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="ZZProgram.My.MySettings.ZZ_SqlServer"
            connectionString="Data Source=SERVER\ZZ_SQL;Initial Catalog=Client00020004;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.diagnostics>
        <sources>
------------------------------------


Altså hvordan kan jeg læse / Skrive til App.config ??
Avatar billede zyfer Nybegynder
23. november 2009 - 10:24 #6
Hej igen, tror den snart er der.. Men kan nogen se hvad der er galt i denne kode. Får ingen fejl men den vil ikke gemme. Køre kun til "CON-1 FUNDET" den finder aldrig den rigtige linie i APP.Config


App.Config :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="Mamut_Kalk.My.MySettings.Mamut_Dantank_SqlServer"
            connectionString="Data Source=SERVER\MAMUT;Initial Catalog=Client00020004;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.diagnostics>
        <sources>

------------------------------------------------------------

Class :

Imports System.Configuration
Imports System.Xml


Public Class AppConfigFileSettings

   
    Public Shared Sub UpdateAppSettings(ByVal KeyName As String, ByVal KeyValue As String)
        Dim XmlDoc As New XmlDocument()
        XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
        For Each xElement As XmlElement In XmlDoc.DocumentElement
            If xElement.Name = "connectionStrings" Then
                MsgBox("CON-1 FUNDET")
                For Each xNode As XmlNode In xElement.ChildNodes
                    If xNode.Attributes(0).Value = KeyName Then
                        MsgBox("CON-2 FUNDET")
                        xNode.Attributes(1).Value = KeyValue
                    End If
                Next
            End If
        Next

        XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)
    End Sub
End Class

-----------------------------------------------

Knap På Form :

Private Sub Save_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save_Button.Click

        Dim Server_string As String

        Server_string = "Data Source=" & ServerADD_TextBox.Text & ";Initial Catalog=" & Database_TextBox.Text & ";Integrated Security=True"
       
        AppConfigFileSettings.UpdateAppSettings("connectionString", Server_string)

        MsgBox("Application Settings has been Changed successfully.")

    End Sub
End Class


-----------------
Avatar billede arne_v Ekspert
24. november 2009 - 01:52 #7
Skal:

If xNode.Attributes(0).Value = KeyName Then

evt. være:

If xNode.Attributes(1).Value = KeyName Then

?
Avatar billede arne_v Ekspert
24. november 2009 - 01:52 #8
Hvorfor gør du iøvrigt ikke som beskrevet i links'ene?
Avatar billede zyfer Nybegynder
24. november 2009 - 11:20 #9
Hej..

De linkede sidder er i C#.net, kunne ikke lige få det til og virke, fandt så denne i VB.net...

Jeg har prøvet at ændre Attributes(?) værdien, til både 1-2-3 og navnet på attributten, men uden held....den vil ik finde den...
Avatar billede arne_v Ekspert
06. december 2009 - 02:22 #10
Det er eller lige ud af landevejen.

VB.NET kode:

Imports System
Imports System.Configuration

Namespace E
    Public Class Program
        Public Shared Function GetConStr(con As String) As String
            Return ConfigurationManager.ConnectionStrings(con).ConnectionString
        End Function
        Public Shared Sub SetConStr(con As String, constr As String)
            Dim cfg As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
            cfg.ConnectionStrings.ConnectionStrings(con).ConnectionString = constr
            cfg.Save(ConfigurationSaveMode.Modified)
            ConfigurationManager.RefreshSection("connectionStrings")
        End Sub
        Public Shared Sub Main(args As String())
            Console.WriteLine(GetConStr("Test"))
            SetConStr("Test", "bla bla bla")
            Console.WriteLine(GetConStr("Test"))
        End Sub
    End Class
End Namespace
Avatar billede zyfer Nybegynder
08. december 2009 - 07:26 #11
Hej Arne..

Tak for svaret, jeg har fået det til og virke men prøver lige din løsning også.

Ved du om det er muligt at lave en søgning på netværket, efter SQL-Servere og så vise valgmulighederne i en kombibox, og der efter gi et valg af databaser på serveren der er valg..

M.v.h Zyfer
Avatar billede arne_v Ekspert
14. december 2009 - 03:16 #12
Det er muligt.

Du kan kalde en command line utility som f.eks.:

osql -L

se også http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/scan-network-for-sql-server-instances

Eller du kan bruge Win32 API NetServerEnum til at finde dem.

Eller du kan bruge SQLDMO ListAvailableSQLServers.
Avatar billede arne_v Ekspert
14. december 2009 - 03:17 #13
Og et svar fra mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester