vijay_bale Ответов: 1

Столкнувшись с проблемой при чтении данных, содержащих специальные символы в SQL с помощью C#


Я могу хранить специальные символы в SQL благодаря оригинальному Griff. Но когда я пытаюсь прочитать данные, я сталкиваюсь с проблемой с этими специальными символами. Данные содержат обычные данные с некоторым символом"'". из-за этого я не могу отобразить эти данные в выпадающем списке и других.

Что я уже пробовал:

Я погуглил, но не смог получить подходящего результата.

OriginalGriff

- Какая проблема?
И когда же? Как это проявляется? Какой код вы используете, чтобы показать проблему?
Что вы сделали, чтобы выяснить, в чем проблема?

vijay_bale

Это мой код для отображения этих имен в выпадающем списке.
строка que = " SELECT compname FROM companyDB ";
string query = " SELECT compname FROM companyDB";
string quer= " SELECT catname FROM catDB";
string qu= " SELECT catname FROM catDB";
SqlDataAdapter da = новый SqlDataAdapter(que, con);
SqlDataAdapter sda = new SqlDataAdapter(query, con);
SqlDataAdapter dp = новый SqlDataAdapter(quer, con);
Sqldataadapter sdp = новый SqlDataAdapter(qu, con);

DataSet ds = новый набор данных();
DataSet sds = новый набор данных();
DataSet de = новый набор данных();
DataSet sde = новый набор данных();

da. Fill(ds, " companyDB");
sda. Fill(sds, " companyDB");
dp. Fill(de, " catDB");
sdp. Fill(sde, " catDB");

combocomp.DisplayMember = " compname";
combocomp. ValueMember = " compname";
combocomp.DataSource = ds. Tables ["companyDB"];

комбонкомп.DisplayMember = " compname";
comboncomp. ValueMember = " compname";
комбонкомп.Источник данных = sds.Таблицы ["companyDB"];

комбокат.DisplayMember = " catname";
combocat.ValueMember = "catname";
комбокат.Источник данных = de.Таблицы ["catDB"];

comboncat.DisplayMember = " catname";
comboncat.ValueMember = "catname";
comboncat.Источник данных = Сде.Таблицы ["catDB"];

combocomp.Свойства selectedIndex = -1;
комбонкомп.Свойства selectedIndex = -1;
комбокат.Свойства selectedIndex = -1;
comboncat.Свойства selectedIndex = -1;
если специальный символ есть в companyDB или catDB, то он показывает что-то вроде system . как это. Если я удалю оттуда специальный символ, то все будет идеально

В выпадающем списке он отображается сейчас.Я создал там с целью тестирования в компании сына.
теперь я пришел туда, где я называю это падением вниз, там он показывает сына. Если я выберу это, то появится ошибка, что неправильный синтаксис рядом с s.

1 Ответов

Рейтинг:
2

OriginalGriff

Цитата:
если специальный символ есть в companyDB или catDB, то он показывает что-то вроде system . как это. Если я удалю оттуда специальный символ, то все будет идеально

Это связано с тем, что DisplayMember и ValueMember используют свойства для доступа к фактическим данным в источнике данных, а это означает, что строка, которую вы передаете им, должна быть именем допустимого свойства В C#. Поэтому он должен следовать правилам C# для имен переменных, которые не включайте специальные символы.

Я думаю, что вы приняли здесь несколько ужасных решений: похоже, у вас есть отдельный стол для каждой компании, и это очень, очень плохая идея. Храните их данные вместе и используйте отдельную таблицу, чтобы содержать все названия компаний, со значением идентификатора в вашей основной таблице:
Companies:
ID      Name           Address     ....
1       Bob's Bakers   ...
2       Mike-the-Bike  ...

Purchases:
ID      CompId         Date        ItemID      Price    ....
1       1              2017-02-14  77123 ...
2       1              2017-02-15  78554 ...
3       2              2017-02-15  65882 ...
Затем вы вытаскиваете из этого то, что вам нужно, используя предложения WHERE (и соединения, если это применимо). Держать отдельные таблицы для каждой компании просто смешно - что, если две компании имеют одно и то же название? У вас не может быть двух столов с одинаковым именем!


vijay_bale

то есть только одна компания, одна категория.companyDB для компании и catDB по категории.Unilever например я храню в companyDB, туалетных мыл категория я храню в CatDB.Здесь я показываю companyDB и catDB как для двух раз одного для создания бренда,так и для редактирования существующего бренда. это означает, что пользователь может переместить этот бренд для одной компании в другую компанию,а также изменить категорию.


Здесь я публикую свое мнение
http://imgur.com/a/jBTRk

Вот скриншот этой ошибки
http://imgur.com/L4qjgch