﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / ASP.NET  / Несовпадение типов в запросе к БД / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sat, 22 Nov 2008 12:25:02 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Переменная strCommandText хранит текст команды. Для обычных запросов это будет SQL текст, для хранимой процедуры - ее название (в этом случае надо не забывть указать правильный CommandType). В твоем случае текст команды может выглядеть так:&lt;P&gt;SELECT * FROM country WHERE country_name=&lt;SPAN&gt;@&lt;/SPAN&gt;country_name&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;</description><pubDate>Wed, 16 May 2007 18:49:26 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Сейчас листаю пример, где используются параметры. Вот что интересно, параметры используются для команд Insert, Delete, Update, но для Select по старинке используется запрос к БД.</description><pubDate>Wed, 16 May 2007 18:38:09 GMT</pubDate><dc:creator>technos</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>А, пардон. Полистал книжку - нашел :-)&lt;P&gt;Речь идет о параметрах объекта SqlCommand, например. И добавлять их можно, скажем, так:&lt;/P&gt;&lt;FONT color=#008080 size=2&gt;&lt;P&gt;SqlCommand&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; objCommand = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SqlCommand&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;(&lt;FONT size=2&gt;strCommandText&lt;/FONT&gt;, objConnect);&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&lt;P&gt;SqlParameter&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; objParam;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;objParam = objCommand.Parameters.Add(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"country_name"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SqlDbType&lt;/FONT&gt;&lt;FONT size=2&gt;.VarChar, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;50&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/P&gt;&lt;/FONT&gt;&lt;P&gt;Попробую. С виду красивее. Вот только непонятно, строка &lt;FONT color=#000000&gt;strCommandText - &lt;/FONT&gt;это название таблицы?</description><pubDate>Wed, 16 May 2007 18:26:59 GMT</pubDate><dc:creator>technos</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Параметры в запросе? Приведите, пожалуйста, пример запроса с параметрами, чтобы я знал куда копать.</description><pubDate>Wed, 16 May 2007 18:17:46 GMT</pubDate><dc:creator>technos</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>И кстати параметры все равно лучше использовать даже с этим изменением.</description><pubDate>Wed, 16 May 2007 17:49:32 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Много. Судя по &lt;A href="http://msdn2.microsoft.com/en-us/library/ms176089.aspx"&gt;документации&lt;/A&gt; 2^31-1.</description><pubDate>Wed, 16 May 2007 17:48:56 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Все получилось. Поменял тип text на varchar(MAX). Кстати, МАХ - это сколько? :-)&lt;/P&gt;&lt;P&gt;Спасибо за советы!</description><pubDate>Wed, 16 May 2007 17:28:31 GMT</pubDate><dc:creator>technos</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Возможные варианты решения:&lt;P&gt;1) Использовать параметры&lt;/P&gt;&lt;P&gt;2) Изменить тип колонки country_name с text на varchar нужной длины. Неужели тебе в самом деле нужно чтобы название страны могли иметь длину до 2 Гб? С типом text связана еще одна проблема: его данные хранятся в отдельном месте файла БД, а не в строке данных. Это приводит к лишним затратам при работе с ним, что оправдано при больших объемах данных, но скорее всего не оправдано в твоем.&lt;/P&gt;&lt;P&gt;3) Если п.2) невозможен, то попробуй сделать в запросе явное приведение колонки к типу varchar или самого значения к типу text.</description><pubDate>Wed, 16 May 2007 17:16:44 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>А ведь точно!&lt;/P&gt;&lt;P&gt;В функции GetCountryID(string strCountry) у меня есть запрос:&lt;/P&gt;&lt;FONT color=#800000 size=2&gt;&lt;P&gt;"SELECT * FROM country WHERE country_name='"&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; + strCountry + &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"'"&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;P&gt;Вот он и приводит к ошибке. Поле country_name в таблице имеет тип &lt;STRONG&gt;text&lt;/STRONG&gt;. Вот здесь и собака порылась :-) А какой тип надо применить, чтобы с типом &lt;FONT color=#1111ff&gt;string&lt;/FONT&gt; нормально сравнивать?</description><pubDate>Wed, 16 May 2007 16:42:52 GMT</pubDate><dc:creator>technos</dc:creator></item><item><title>RE: Несовпадение типов в запросе к БД</title><link>http://www.relib.com/forums/Topic913305-25-1.aspx</link><description>Значит вообще в другом месте ошибка возникает. SQL же ругается на невозможность сравнения text и varchar. В приведенном запросе нет такого сравнения.</description><pubDate>Wed, 16 May 2007 16:02:17 GMT</pubDate><dc:creator>bazile</dc:creator></item></channel></rss>