Не удается найти объект, потому что он не существует - PullRequest
1 голос
/ 05 марта 2012

Я потратил час на поиск, прежде чем отправил сообщение об этой проблеме.

Таблица существует, и я могу запросить эту таблицу и увидеть набор результатов, но при попытке выполнить из Visual Studio 2008 я получаюошибка ниже:

Cannot find the object "Products" because it does not exist or you do not have permissions

Почему возникает эта ошибка и что я должен сделать для ее устранения?

using (System.Data.SqlClient.SqlCommand cmd = connection.CreateCommand() as System.Data.SqlClient.SqlCommand)
{
   cmd.CommandText = "SET IDENTITY_INSERT Products ON";
   cmd.CommandType = CommandType.Text;
   cmd.ExecuteNonQuery();
}

Я попытался указать dbo.Products, и перед выполнением я также попытался use dbname но это не помогло.

Ответы [ 2 ]

2 голосов
/ 06 марта 2012

, потратив несколько часов и потеряв несколько волосков, я обнаружил, что проблема была в строках соединения (но это до сих пор меня не устраивало), и, как я уже сказал, у меня не было никаких проблем, но внезапно всплыло ия ничего не изменяю (кто знает, что изменили dba)

, поэтому я вместо этого пытаюсь настроить строку подключения, и она создает строку, чтобы увидеть, если это что-то меняет: и это делает.

c.Provider = 'sqloledb'
dsn = 'Server=MyServer;Database=MyDB;Trusted_Connection= Yes'
c.Open(dsn)

единственное, что я добавил в строку подключения, это Trusted_Connection= Yes

PS: SET IDENTITY_INSERT остается включенным для вашего сеанса, пока вы не выключите его, и он может быть включен только для одной таблицы ввремя

Надеюсь, это поможет другим ...

0 голосов
/ 05 марта 2012

Ошибка происходит, потому что вы еще не установили контекст базы данных.Если вы добавите «use (dbname) go» (с именем вашей базы данных) в начало запроса, это сработает.

[edit] Извините, вы не заметили, что вы пытались это сделать.Может быть, вы подключаетесь не к тому серверу?Попробуйте изменить запрос в коде на «создать таблицу argh (argh int)» и проверить, что он завершается неудачно во второй раз.Тогда отыщите, где он его создал!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...