[SQL 2005 CE] Kilka Pytań

0
  1. Jak przenieść relacyjna baze w .mdf do mobilnej .sdf ?

  2. Podczas instalacji SQL 2005 CE serwer tools ENU ,instalator wymaga najpierw zainstalowanych:

  • II S requirements
  • SQL Serwer requirements (replication components)
    gdzie to zdobyc ?
  1. Jak jednym klikiem usunąć jakiś komponent tak zeby zniknal z wszystkich powiązanych plikow (VS2005)?

[???]

0

Następne..

  1. Jak zdefiniowac connection string , do bazy SQL CE ? ( *.sdf ) [???]

mam taki:
SqlConnection myCn = new SqlConnection("Data Source= " + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().Clone) + "/slownik.sdf;Persist Security Info=False");

ale wyskakuje blad:

Error	1	The best overloaded method match for 'System.IO.Path.GetDirectoryName(string)' has some invalid arguments	C:\ProjektSlownik\ZapisdoSQL\ZapisdoSQL\Program.cs	22	70	ZapisdoSQL
Error	2	Argument '1': cannot convert from 'method group' to 'string'	C:\ProjektSlownik\ZapisdoSQL\ZapisdoSQL\Program.cs	22	102	ZapisdoSQL
0

Przeczytałeś w ogóle ten komunikat o błędzie?
Nie chodzi o connection stringa, tylko o to, że źle używasz metody System.Path.GetDirectoryName(), której jako parametr powinieneś podać string.
A co podajesz?
"System.Reflection.Assembly.GetExecutingAssembly().GetName().Clone"
Po pierwsze - Clone() jest metodą, więc powinny tam być na końcu nawiasy.
Po drugie - ta metoda zwraca kopię obiektu, w tym wypadku AssemblyName...
Co Ty w ogóle chcesz osiągnąć i po czemu robisz to tak dziwnie?
Nie możesz ustawić stałej ścieżki? Albo względnej?

0

Kurcze meczylem sie z tym kilka godzin wczoraj..to jest connectionstring który za pomoca sql connection łączy sie z bazą Compact Edition.Te metody wyszukuja plik *.sdf z folderu gdzie jest plik exe projektu
Skopiowałem go ze strony www.connectionstrings.com
nie powinien miec bledu..

0

Ścieżkę do katalogu, w którym znajduje się Twój plik programu możesz pobrać w ten sposób:
string ścieżka = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

0

mam taki connection string
[Kod C#]

SqlCeConnection myCn = new SqlCeConnection("Data Source=slownik1.sdf;Persist Security Info=False");

i wywala mi taki błąd..

Unable to load DLL 'sqlceme30.dll': Nie można odnaleźć określonego modułu. (Exception from HRESULT: 0x8007007E)

a plik lezy sobie spokojnie w kilku miejscach ..w folderze Visual Studio..

czy moze ktos pomoc?? [glowa]

Dzieki somekind! zastosowalem twoja podpowiedz w ten sposob:

 SqlCeConnection conn = new SqlCeConnection();

            conn.ConnectionString = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
            
            conn.Open();           
           

ale niestety w tej linijce:


SqlCeConnection conn = new SqlCeConnection();

Wywala taki sam blad jak napisalem na poczatku posta..

[!!!] czy ktos moze mi podpowiedziec ..o co chodzi?

0
kiniu napisał(a)

SqlCeConnection conn = new SqlCeConnection();

> 
> Wywala taki sam blad jak napisalem na poczatku posta..
> 
>  [!!!] czy ktos moze mi podpowiedziec ..o co chodzi?

Bo to nie jest poprawny connection string. Powinieneś podać ścieżkę do pliku, nazwę bazy, login, hasło, a Ty podajesz tylko ścieżkę do katalogu, w którym jest plik.
Podałem Ci kawałek kodu, a nie wszystko.
0

faktycznie, poniosło mnie..
eee to jak ma o wygladac w całości :-) ?

0

Nie moglem uzyc dyrektywy System.Data.SqlServerCe; bo zaraz wywalalo mi blad:

Unable to load DLL 'sqlceme30.dll': Nie można odnaleźć określonego modułu. (Exception from HRESULT: 0x8007007E)

Znalazłem odpowiedz na problem - http://blogs.msdn.com/smartclientdata/archive/2005/07/15/439008.aspx</span>

wystarczy przegrac pliki *.dll w odowiednie miejsce

0

a to jest kod który łączy się z bazą CE i zapisuje do niej dane wczytane z pliku (pomogł somekind):

static void Main(string[] args)
        {
        SqlCeConnection con = new System.Data.SqlServerCe.SqlCeConnection("Data Source =\\ProjektSlownik\\bazaCE\\CEbaza.sdf;");
        StreamReader reader = File.OpenText("newbe.txt");
        String pol = String.Empty;
        String ang = String.Empty;
        SqlCeCommand inCmd = new SqlCeCommand("INSERT INTO Slownik (pol, ang) VALUES (@pol, @ang)");
        inCmd.Connection = con;
        inCmd.Connection.Open();


    while ((ang = reader.ReadLine()) != null && (pol = reader.ReadLine()) != null) 

    {

        inCmd.Parameters.Clear();
        inCmd.Parameters.AddWithValue("@pol", pol);
        inCmd.Parameters.AddWithValue("@ang", ang);
        inCmd.ExecuteNonQuery();
    }
      
        inCmd.Connection.Close(); 

jesze tylko musze wykombinowac zeby wstawił do trzeciej kolumny "ID" odpowiednie rosnące wartości

[soczek] dzieki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1