2014-04-08 18 views
5

Przechowuję dane w lokalnej bazie danych przy użyciu SQLite. Mam ciąg wpisane kilka zmiennych do przechowywania. Teraz, kiedy przechowuję te zmienne łańcuchowe, są one zapisywane jako "VARCHAR" (jak na poniższym obrazku).Przechowywanie "String" jako "TEXT" zamiast "VarChar" w SQLite - WP8

Picture 1

enter image description here

Ale chcę, aby przechowywać te ciągi jako "tekst" typu w SQLite. (Jak na rysunku poniżej)

Picture 2

enter image description here

Klasa używam do przechowywania dB jest jak poniżej:

public class abc 
{ 
    [SQLite.AutoIncrement, SQLite.PrimaryKey] 
    public int _id { get; set; } 
    public string a { get; set; } 
    public string b { get; set; } 
    public string c { get; set; } 
    public string d { get; set; } 
    public string e { get; set; } 
    public string f { get; set; } 
    public string g { get; set; } 
    public DateTime date { get; set; } 

} 

każda pomoc będzie docenione.

+0

'varchar' to' TEKST "w' SQLite', więc nie musisz się martwić! –

Odpowiedz

7

varchar to TEXT w SQLite, więc nie musisz się martwić!

Wewnętrznie dane są zawsze zapisywane jako tekst, więc nawet jeśli utworzyć tabelę z VARCHAR(LEN), SQLite zamierza przestrzegać zasad typu TEXT danych

+0

Dzięki za odpowiedź, ale to nie tak. Jak napisałem obraz, istnieje różnica i ta różnica powoduje problemy z niezgodnością z plikiem bazy danych utworzonym na innej platformie, takiej jak Android i ios –

+0

Jaka niezgodność? –

+0

@CL Zobacz, mamy aplikację dla wielu platform na platformy wp, android i iphone. teraz udostępniamy wspólny plik DB utworzony przez SQLite na każdej platformie. W pytaniu, Obraz 1 jest pliku DB utworzonego przez WP, a Obraz 2 jest pliku DB utworzonego przez Androida. teraz, gdy plik DB utworzony przez WP skopiowany do urządzenia z systemem Android, dane nie są wyświetlane na tym urządzeniu. oznacza to, że VarChar (len) typ danych tworzy problem. jeśli zmienimy VarChar (len) na TEXT ręcznie, to działa .. samo z aplikacją na iPhone'a. p.s. przepraszam za długie wyjaśnienie. –

0

Chociaż nie ma różnicy między Text i Varchar typów danych w SQLite , ale jeśli chcesz, aby zmienić go tak, jak chcesz, to zrobić:

Jeśli używasz sqlite-net (SQLite.cs & SQLiteAsync.cs) w aplikacji WP8.0, a następnie przejść do SQLite.cs klasy i znajdź metodę SqlType (około linii 1863). Następnie możesz zobaczyć oświadczenie if (clrType == typeof(String)). Jeśli wolisz typ danych Text, możesz zmienić varchar na text, jak chcesz.

+0

wydaje się dobrym rozwiązaniem .. !! Sprawdzę to ..! –

0

Co do mojej wiedzy, typ tekstu akceptuje znaki UTF-8 i specjalne znaki itp. Nie jest to samo z typem Varchar.

Powiązane problemy