Один или несколько ваших просмотров, созданных / зарегистрированных другим пользователем. Вам нужно будет проверить владельца представления и:
'web2vi'
, используя ALTER VIEW У меня была эта проблема один раз.
Я пытался перенести представления из BD1 в BD2, используя SQLYog. SQLYog воссоздал представления в другой базе данных (DB2), но он сохранил пользователя BD1 (они разные). Позже я понял, что взгляды, которые я использовал в своем запросе, имели ту же ошибку, что и вы, даже когда я не создавал никакого представления.
Надеюсь, что эта помощь.
Могут быть определенные причины, по которым вы решите не использовать установочный пакет для своего проекта, но установочный пакет - отличное место для простого выполнения задач настройки приложения, таких как регистрация расширений файлов, добавление ярлыков на рабочий стол, и т. д.
Вот как создать ассоциацию расширений файлов с помощью встроенных инструментов установки Visual Studio:
В существующем решении C # добавьте новый проект и выберите тип проекта Другие типы проектов
- > Установка и развертывание
-> Проект установки
(или попробуйте Мастер установки)
Настройте программу установки (для этого имеется множество документов, если вам нужна помощь)
Право- щелкните проект установки в обозревателе решений, выберите Просмотр
-> Типы файлов
,а затем добавьте расширение, которое вы хотите зарегистрировать вместе с программой для его запуска.
Этот метод имеет дополнительное преимущество очистки после себя, если пользователь запускает удаление вашего приложения.
Если вы используете развертывание ClickOnce, все это делается за вас (по крайней мере, в VS2008 SP1); просто:
(обратите внимание, что он должен быть полностью доверительным, иметь целевой .NET 3.5 и быть установлен для автономного использования)
См. также MSDN: Практическое руководство. Создание ассоциаций файлов для приложения ClickOnce
Кроме того, если Вы решаете пойти реестром путь, иметь в виду, что текущие ассоциации пользователей находятся под HKEY_CURRENT_USER\Software\Classes. Могло бы быть лучше добавить Ваше приложение там вместо локальных классов машины.
, Если Ваша программа будет запущена ограниченными пользователями, Вы не будете в состоянии изменить CLASSES_ROOT так или иначе.
Кажется, нет.Net API для непосредственно руководящих ассоциаций файлов, но можно использовать классы Реестра для чтения и записи ключей, Вы должны.
необходимо будет создать ключ под HKEY_CLASSES_ROOT с набором имени к расширению файла (например: ".txt"). Установите значение по умолчанию этого ключа к уникальному имени для Вашего типа файла, такого как "Высшая точка. TextFile". Тогда создайте другой ключ под HKEY_CLASSES_ROOT с набором имени к "Высшей точке. TextFile". Добавьте подключ по имени "DefaultIcon" и установите значение по умолчанию ключа к файлу, содержащему значок, который Вы хотите использовать для этого типа файла. Добавьте другой одноуровневый элемент, названный "оболочкой". Под ключом "оболочки" добавьте ключ для каждого действия, которое Вы хотите иметь в наличии через контекстное меню Explorer, устанавливая значение по умолчанию для каждого ключа к пути к Вашему исполняемому файлу, сопровождаемому пространством и "%1" для представления пути к выбранному файлу.
, Например, вот демонстрационный файл реестра для создания ассоциации между .txt файлами и EmEditor:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.txt] @="emeditor.txt" [HKEY_CLASSES_ROOT\emeditor.txt] @="Text Document" [HKEY_CLASSES_ROOT\emeditor.txt\DefaultIcon] @="%SystemRoot%\\SysWow64\\imageres.dll,-102" [HKEY_CLASSES_ROOT\emeditor.txt\shell] [HKEY_CLASSES_ROOT\emeditor.txt\shell\open] [HKEY_CLASSES_ROOT\emeditor.txt\shell\open\command] @="\"C:\\Program Files\\EmEditor\\EMEDITOR.EXE\" \"%1\"" [HKEY_CLASSES_ROOT\emeditor.txt\shell\print] [HKEY_CLASSES_ROOT\emeditor.txt\shell\print\command] @="\"C:\\Program Files\\EmEditor\\EMEDITOR.EXE\" /p \"%1\""
Ассоциации файлов определяются в реестре под HKEY_CLASSES_ROOT.
существует пример VB.NET здесь , что я - Вы, может портировать легко на C#.