Мислам дека не сретнав ваков проблем, па затоа однапред ме извинете за дуплиот пост (ако го има).
Вака, имам програма во C# која се врзува со MySQL база преку Wamp (нарочно користам Wamp, бидејќи имам Windows 7 и ми е 64bit-ен и единствено Wamp-от нуди 64bit-на верзина на овие програмчињата за php, mysql, localhost...) И да, верзијата ми е Microsoft Visual C# 2010 Express.
Се врзувам до базата рачно (бидејќи се отепав од барање на интернет и никако преку визардот да го опраам - ако воопшто може?), поточно се врзувам преку следниве команди
private MySql.Data.MySqlClient.MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection(); //konekcija
private MySql.Data.MySqlClient.MySqlDataAdapter data = new MySql.Data.MySqlClient.MySqlDataAdapter(); //adapter
connection.ConnectionString ="server=localhost;"+ "database=xxxxx;"+ "uid=root;"+ "password=;"; //konekciski string
try
{
connection.Open(); //otvoranje na konekcijata
MySql.Data.MySqlClient.MySqlCommand command = connection.CreateCommand(); //sozdavanje query
command.CommandText = "SELECT * FROM data"; //prvicno query za listanje na tabelata
data.SelectCommand = command; //izvrsuvanje na query od bazata
DataSet dataset = new DataSet(); //C# proceduri, pravenje na dataset kompatibilnost za gridview
data.Fill(dataset, "sample_data"); //polnenje na dataset
dataGridView1.DataSource = dataset; //postavuvanje na datagrid kon dataset
dataGridView1.DataMember = "sample_data"; //i koj set na podatoci da se ispisuvaat
}
и го полнам dataGrid1 со податоците во базата и си се испишуваат супер, така како шо си треба
...е сега ПРОБЛЕМОТ! ---->
ако сакам јас да внесам податоци во базата, ги внесувам со командите
string comm1 = "INSERT INTO data (хххх, хххх) VALUES ('Abcdef', 'Абвгдѓ')";
MySql.Data.MySqlClient.MySqlCommand command = connection.CreateCommand(); //sozdavanje quer
command.CommandText = comm1;
command.ExecuteNonQuery();
овие “првите“ латиничните карактери ги внесува супер, ама нашиве кириличните никако, па ми ги претставува како прашалници... Па овде барам да ми помогне некој доколку знае како
Е сега историјат на тоа што се имам направено и пробано:
ПРВО: го користам PhpMyAdmin за дизајнирање на базата, за поставување на вредностите (Varchar, int и такви работи...) и преку него ако ги внесам саканите вредности си се внесува океј и се прикажува океј. Имам испробано и со php да се испратат овие податоци иии се испраќаат преку соодветно query, ама во базата изгледаат вака Драган, додека после ако ги вчитам преку пребарувач што има код да ја чита базата, ги вади нормално (ЗАБЕЛЕЖИ дека неможам да пребарувам соодветно низ базата доколку се вакви карактерите)
ВТОРО:го сменив типот на податокот од Varchar во Text.... ама не бива
ТРЕТО: го менував collation на табелата еден мал милион пати od windows cyrilic 1251 general до bin, до utf8 unicode ci (case insensitive)... и верувајте ми кога ви викам дека ги сменив веројатно сите кирилични варијанти што ги поддржува базата ама не бива
ЧЕТВРТО: го менував енџинот на базата, првично користи MylSAM, па го ставив InnoDB и што ли знам не... не бива
ПЕТТО: го менував текстот што го испраќам од C# во стилот
string commm2 = commm1.Replace("Драган", "\u0414 \u0440 \u0430 \u0433 \u0430 \u043D");
излезен стринг и соодветен Unicode хексадекаден код
-----------------------------------------
byte[] comm22 = Convert.FromBase64String(commm1);
string commm3 = Encoding.UTF8.GetString(comm22);
конверзија во бинарно (во случајот може да се гледат и декадно во дебаг моуд) бејс 64 па во УТФ8... ама и тоа не бива
ШЕСТО: воопшто да не работам со стринг променлива, туку вака директно со текст во заградите на командата
СЕДМО: додавања на мајмунчиња однапред, соодветни наводници, запирки .... скоро сите варијанти се испробани
... и што ли уште не, што не сум ни запомнал, па да го истурам овде
Па ако може некој да ме разбере прво, па да ми помогне, би му бил многу благодарен. Всушност благодарам однапред за вашето време што ќе го истрошите да го прочитате ова и да поразмислите и/ли се сетите на некоја идеја.
Поздрав