Причина это не работает, состоит в том, потому что C# не позволяет перекрестную иерархию, звонящую защищенных методов. Скажите, что было класс E
, который также произошел от C
:
C
/ \
D E
Затем ссылка Вы пытаетесь обратиться к методу, мог на самом деле быть экземпляр типа E
, и таким образом метод мог решить во времени выполнения к E.F
. Это не разрешено в C#, поскольку D
не может звонить E
защищенные методы, потому что E
находится в другом ответвлении иерархии, т.е.
var d = new D();
var e = new E();
d.G(e); // oops, now this will call E.F which isn't allowed from D
Это имеет смысл, потому что ключевое слово protected
означает, что участник" доступен в его классе и экземплярами производного класса ", и E.F не является членом D.
Вы можно использовать функцию mysql_set_charset: http://it2.php.net/manual/en/function.mysql-set-charset.php
Разве вы не можете просто преобразовать таблицы в кодировку вашего приложения? Или использовать utf-8 в обоих?
Я не знаю, поддерживает ли MSSQL кодирование на уровне таблиц.
Кроме того, попробуйте строковые функции MB (многобайтовые), если описанное выше не помогло.