Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ERROR [07002], Не могу найти причину ошибки 
V
    Опции темы
Nicson
Дата 21.3.2006, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Доброго времени суток.

Может кто сталкивался с такой проблемой. Есть gridview s dropdown листом:

Код
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <b>Izvelet sistemu</b>&nbsp
        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="Statuss" AutoPostBack="true">
        </asp:DropDownList>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:DUS_ProblemuRegistrs_DB %>" ProviderName="<%$ ConnectionStrings:DUS_ProblemuRegistrs_DB.ProviderName %>" SelectCommand="SELECT DISTINCT [Statuss] FROM [Slodze]"></asp:SqlDataSource>
        <br/>
        <br/>
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1" Height="50px" Width="900px" AlternatingRowStyle-HorizontalAlign="Center" AlternatingRowStyle-VerticalAlign="Top" AlternatingRowStyle-Width="60" EditRowStyle-Height="50" EditRowStyle-HorizontalAlign="Center" EditRowStyle-VerticalAlign="Middle" EditRowStyle-Width="70" EditRowStyle-Wrap="false" EmptyDataRowStyle-Height="70" EmptyDataRowStyle-HorizontalAlign="Center" EmptyDataRowStyle-VerticalAlign="Middle" HorizontalAlign="Center" AlternatingRowStyle-Wrap="false" PagerStyle-HorizontalAlign="Center" RowStyle-HorizontalAlign="Center">
            <Columns>
                <asp:CommandField ShowSelectButton="True" SelectText="Apskatit" />
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                    SortExpression="ID" />
                <asp:BoundField DataField="Veicejs" HeaderText="Veicejs" SortExpression="Veicejs" />
                <asp:BoundField DataField="Nosaukums" HeaderText="Nosaukums" SortExpression="Nosaukums" ControlStyle-BorderWidth="50" />
                <asp:BoundField DataField="Sakuma_laiks" HeaderText="Sakuma_laiks" SortExpression="Sakuma_laiks" />
                <asp:BoundField DataField="Sistema" HeaderText="Sistema" SortExpression="Sistema" />
                <asp:BoundField DataField="Statuss" HeaderText="Statuss" SortExpression="Statuss" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DUS_ProblemuRegistrs_DB %>" ProviderName="<%$ ConnectionStrings:DUS_ProblemuRegistrs_DB.ProviderName %>" SelectCommand="SELECT [ID], [Veicejs], [Nosaukums], [Sakuma_laiks], [Sistema], [Statuss] FROM [Slodze] WHERE ([Darbs] = 12) AND ([Apaksdarbs] = 67) AND ([Statuss] = @Statuss)">
        <SelectParameters>
        <asp:ControlParameter Name="Statuss" ControlID="DropDownList1" />
        </SelectParameters>
        </asp:SqlDataSource>
        &nbsp; &nbsp;&nbsp;    
    </form>
</body>
</html>


Ошибок нет, но при исполнении выкидивает:

Код
ERROR [07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.Odbc.OdbcException: ERROR [07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[OdbcException (0x80131937): ERROR [07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.]
   System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) +80
   System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod) +3341
   System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader) +91
   System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior) +72
   System.Data.Odbc.OdbcCommand.ExecuteDbDataReader(CommandBehavior behavior) +29
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +32
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +183
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +307
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +152
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2868
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +84
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +153
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +99
   System.Web.UI.WebControls.GridView.DataBind() +23
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +92
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +100
   System.Web.UI.Control.EnsureChildControls() +134
   System.Web.UI.Control.PreRenderRecursiveInternal() +109
   System.Web.UI.Control.PreRenderRecursiveInternal() +233
   System.Web.UI.Control.PreRenderRecursiveInternal() +233
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4435
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42 


Если в SqlDataSource1 меняю последнее условие запроса с ([Statuss] = @Statuss) на ([Statuss] = 2) т.е. ставлю не параметр фильтра из DropDownList а фиксированное значение - все работает в смысле значения выводятся, но естественно никакой связи с DropDownList нет. Выходит проблема в этом @Statuss, но почему? Во всех примерах которые нашел все именно так и описывается....

Это сообщение отредактировал(а) mr.DUDA - 21.3.2006, 20:42
PM MAIL   Вверх
Exception
Дата 21.3.2006, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



А почему мы к БД Access коннектимся через SqlDataSource? AccessDataSource рулит.
PM   Вверх
Exception
Дата 21.3.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



Модератор: пожалуйста, используйте теги для кода!
Модератор: перемещено из VB .NET

PM   Вверх
Nicson
Дата 21.3.2006, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Цитата(Exception @ 21.3.2006, 18:07)
А почему мы к БД Access коннектимся через SqlDataSource? AccessDataSource рулит.

В этом причина проблемы?
PM MAIL   Вверх
Exception
Дата 21.3.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



Не знаю, не проверял. Хотя к базе вроде он коннектится.. Попробуй все равно.
PM   Вверх
mr.DUDA
Дата 21.3.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 5
Всего: 232



Цитата(Nicson @ 21.3.2006, 19:13 Найти цитируемый пост)
В этом причина проблемы?

Похоже, причина проблемы в том что не определено значение параметра @Statuss, так ИМХО обозначаются параметры, передаваемые в хранимую процедуру (в Access есть свой аналог хранимых процедур - QueryDef). Если бы разбирался в ASP.NET, посоветовал бы что-нить, но... smile


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 21.3.2006, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



Дык они вроде задаются в SelectParameters.. Поэтому и странно, что код его не "видит". Попробуй поменять на AccessDataSource.
PM   Вверх
mr.DUDA
Дата 22.3.2006, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 5
Всего: 232



А если так:
Код

<asp:ControlParameter Name="Statuss" ControlID="DropDownList1" propertyname="SelectedValue" />

?


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 22.3.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



Похоже на то.
PM   Вверх
Nicson
Дата 22.3.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Dobavil propertyname="SelectedValue" ni4ego ne pomenalos soobscenie ob osibke takoeze. smile(

Mne na drugom forume otvetili:

Очевидно при первом запросе страницы DropDownList1.SelectedValue у тебя пустой - вот и вылетает второй запрос. Разреши пустые значения для параметра Statuss

Tolko kak i gde razresit eti pustie zna4enija celovek napisavsij eto govorit ne pomnit. Ne ponimaju... V ControlParameter est parametr DefaultValue poproboval ego ustanovit opat ni4ego ne pomenalos. Mne etot kusok koda uze snitsa v kosmarnih snah smile Poprobuju cerez AccessDataSource esli ne polucitsa daze i ne znaju 4e delat. A mozet bit s ODBC driverom 4ego-nit neto? S drugoj storoni esli ubiraju v selekte AND Slodze.Statuss = @Statuss dannie vibirajutsa korektno zna4it vse dolzno rabotat. Mozet kto esce 4e posovetuet.... smile
PM MAIL   Вверх
mr.DUDA
Дата 22.3.2006, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 5
Всего: 232



Nicson, под смайликами есть чекбокс "транслит"...


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 24.3.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Цитата(Nicson @ 22.3.2006, 18:35 Найти цитируемый пост)
Очевидно при первом запросе страницы DropDownList1.SelectedValue у тебя пустой - вот и вылетает второй запрос

Человек дело говорит. Как разрешить, я не знаю, но есть другой вариант - в случае, если SelectedValue пустой, подставлять в значение параметра System.DBNull.Value.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Nicson
Дата 25.3.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Попробовал с AccessDataSource и с темже GridView все работает как надо, без установки каких либо параметров, может дело и не в них.... Но насколько я понимаю база для AccessDataSource должна быть расположена внутри директории сайта, или не обязательно? У меня web сервер на одной машине, а база на другой можно в этом случае использовать AccessDataSource или без SqlDataSource не обойтись?
PM MAIL   Вверх
arilou
Дата 27.3.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Nicson, AccessDataSource используется для доступа к БД Access, а SqlDataSource - к MS SQL Server. Это разные вещи, но отличаются они отнюдь не расположением БД smile
Дла Аскеса в принципе все равно, где расположен файл с БД. Главное, чтобы туда был доступ (если на другом компе, то через network share).


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Nicson
Дата 28.3.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Но я ведь работал с базой через ODBC, так что всё должно было работать....
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.1076 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.