System data sqlclient sqlexception invalid column name

My MVC-приложение возвращает SqlExceptions при попытке доступа к любой таблице в моей базе данных.

Сведения об исключении: System.Data.SqlClient.SqlException: недопустимое имя объекта ‘dbo.Projects’.

Мое приложение us linq для слоя данных.

Если я использую старую dll, она отлично работает (так что это не похоже на проблему с БД) именно эту последнюю DLL-версию приложения, которую я загрузил.

Один из моих столбцов называется from . Я не могу изменить имя, потому что я этого не сделал. Мне разрешено делать что-то вроде SELECT from FROM TableName или есть специальный синтаксис, чтобы избежать путаницы SQL Server?

14 ответов

Оберните имя столбца в скобках так, from станет [from].

Также возможно использовать следующее (полезно при запросе нескольких таблиц):

В MySQL, альтернативно, используя обратные кавычки (`), вы можете использовать пользовательский интерфейс для изменения имен столбцов. Щелкните правой кнопкой мыши таблицу> Таблица изменений> Изменить имя столбца, содержащее ключевое слово sql> Commit.

В качестве примечания, вышесказанное не работает в MySQL

Пока вы это делаете — псевдоним это как что-то еще (или еще лучше, используйте представление или SP и осуждаете старый метод прямого доступа).

Судя по ответам здесь и моему собственному опыту. Единственный приемлемый ответ, если вы планируете быть переносным, не использует ключевые слова SQL для таблицы, столбца или других имен.

Все эти ответы работают в различных базах данных, но, судя по всему, t поддерживает решение ANSI.

На ваш вопрос, кажется, здесь хорошо ответил, но я просто хочу добавить еще один комментарий к этой теме.

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

Читайте также:  Polaris office для android

I’m trying to insert into a database table from visual studio but I’m getting the same error and I don’t know what could it be.

System.Data.SqlClient.SqlException: ‘Invalid column name’

This is my code, I made 2 classes, Gateway, Dept and the Form1:

1 Answer 1

The error caused by your insert value is a string so you need to use ‘ to contain your value.

But There is a big issue than it is SQL-Injection.

I would suggest you use parameters instead of connected SQL statement string.

make sure your parameter data type size as same as your table schema.

NOTE

I would use using statement, because the purpose of Using statement is that when control will reach end of using it will dispose that object of using block and free up memory. its purpose is not only for auto connection close, basically it will dispose of connection object and obviously, connection also closed due to it.

As a rule, when you use an IDisposable object, you should declare and instantiate it in a using statement. The using statement calls the Dispose method on the object in the correct way, and (when you use it as shown earlier) it also causes the object itself to go out of scope as soon as Dispose is called. Within the using block, the object is read-only and cannot be modified or reassigned.

The using statement ensures that Dispose is called even if an exception occurs while you are calling methods on the object. You can achieve the same result by putting the object inside a try block and then calling Dispose in a finally block; in fact, this is how the using statement is translated by the compiler. The code example earlier expands to the following code at compile time (note the extra curly braces to create the limited scope for the object):

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *