sql >> Database teknologi >  >> RDS >> Mysql

Skift kodning af en liste over objekter

Jeg mistanker hvad der sker her er ganske enkelt:din database har ikke-unicode-kolonner, og du forsøger at gemme unicode-data. Urepræsenterbare karakterer vil faktisk være græske. Den korrekte rettelse er der:Sørg for, at din kolonne er unicode. At rode med kolonnekodninger kunne arbejde, men for pokker det er meget arbejde sammenlignet med bare at bruge unicode.

Dapper videregiver tingene "som de er" til ADO.NET; hvad udbyderen gør er op til udbyderen. Der er en måde at fortælle den om at vælge mellem ANSI og Unicode, når den sender data ind i databasen, dog - via DbString , dvs.

conn.Execute(sql, new {
    id, name,
    desc = new DbString { IsAnsi = true, Value = desc }
});

Dette giver dig også mulighed for at kontrollere længden osv. Vi kontrollerer dog ikke kodningen her; kodningen er normalt en egenskab for selve databasen eller hos udbyderen. Hvis MySQL har nogle skræddersyede måder at kontrollere det på i ADO.NET, er jeg "alle ører", men først:du skal få det til at fungere i rå ADO.NET.




  1. postgresql:enum og karakter varierende, opdatering

  2. Sammenligning af 3. parts Oracle .NET-udbydere

  3. UNPIVOT på flere kolonner for at returnere flere kolonner

  4. Har nogen fundet en effektiv måde at gemme BSON ObjectId-værdier i en SQL-database?