ASP.NET Запрос ODBC с параметрами

Существует 3 пути:

  1. Выделяют массив на "куче" - использование malloc(), как другие предложенные плакаты. Не забывайте к free() это (хотя для main() не то, чтобы важный - ОС очистит память для Вас на завершении программы).
  2. Объявляют массив на уровне единицы - он будет выделен в сегменте данных, и видимый для всех (добавление static к объявлению ограничит видимость единицей).
  3. Объявляют Ваш массив как static - в этом случае он будет выделен в сегменте данных, но видимый только в main().
7
задан Maksim Vi. 19 August 2013 в 21:14
поделиться

4 ответа

Из MSDN:

Если для CommandType задано значение Text, поставщик данных .NET Framework для ODBC не поддерживает передачу именованных параметров в инструкцию SQL или хранимую процедуру, вызываемую OdbcCommand. . В любом из этих случаев используйте заполнитель с вопросительным знаком (?). Например:

SELECT * FROM Customers WHERE CustomerID = ?

Перепишите свой запрос в

OdbcConnection conn = new OdbcConnection(connString);
    String query = "INSERT INTO customer (custId, custName, custPass, "+
                   "custEmail, custAddress, custAge) VALUES (" +
                   "?, ?, ?, ?, ?, ?)";

Порядок подсчета параметров!

РЕДАКТИРОВАТЬ: Параметр можно добавить следующим образом:

OdbcCommand exe = new OdbcCommand(query, conn);
exe.Parameters.Add("ID", OdbcType.UniqueIdentifier).Value = id;
exe.Parameters.Add("Name", OdbcType.VarChar).Value = name;
exe.Parameters.Add("Pass", OdbcType.VarChar).Value = pass;
exe.Parameters.Add("Email", OdbcType.VarChar).Value = email;
exe.Parameters.Add("Address", OdbcType.VarChar).Value = address;
exe.Parameters.Add("Age", OdbcType.Int).Value = age;
31
ответ дан 6 December 2019 в 05:55
поделиться

Вместо того, чтобы делать это программно, вы можете использовать переменные среды и настраиваемые шаблоны в файле конфигурации. См. Этот ответ на аналогичный вопрос .

Посмотрите на «PatternString для конфигурации на основе шаблонов» в примечаниях к выпуску Log4Net V1.2.10 .

Также, если вы думаете о запись в каталог, например Enviroment.SpecialFolder.CommonApplicationData, который необходимо учитывать:

  • Все ли экземпляры вашего приложения для всех пользователей будут иметь доступ для записи в файл журнала? Например, я не верю, что неадминистраторы смогут писать в Enviroment.SpecialFolder.CommonApplicationData.

  • Конфликт, если несколько экземпляров вашего приложения (для одного или разных пользователей) пытаются использовать один и тот же файл. Вы можете использовать " Пожалуйста, проверьте названия столбцов.

0
ответ дан 6 December 2019 в 05:55
поделиться

Обычно вы увидите это, если неправильно написали имя столбца в своем операторе SQL. Вы уверены в названиях этих столбцов (custId, custName и т. Д.)?

0
ответ дан 6 December 2019 в 05:55
поделиться

попробуйте изменить pass на passw, возможно, он перепутался с идентификатором asp ...

0
ответ дан 6 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: