powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP + ASP.NET есть проблемы. Нужна помощь.
18 сообщений из 18, страница 1 из 1
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36736973
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа !
У кого есть опыт общения VFP + ASP.NET ? У меня есть одна проблема незнаю как её победить. Суть в следующем:
есть страница на ней SQLDataSource и GridView. Данные беруться из базы VFP. Используется OLEDB Provider. Для обновления данных использую параметризированые запросы. Выборка проходить нормально, а вот проблемы с UPDATE. В коммаде UPDATE парметры @xx не заменяются на значения. Незнаю что и делать. Привожу код страницы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
            DataSourceMode="DataSet"
            DeleteCommand="DELETE FROM sprclient where sprclient.id='@ID'"
            UpdateCommand="UPDATE SPRCLIENT WHERE SPRCLIENT.ID='@ID' SET SPRCLIENT.FULLNAME='@FULLNAME',SPRCLIENT.INN='@INN',SPRCLIENT.ADRESS1='@ADRESS1'"
            InsertCommand="INSERT INTO SPRCLIENT (FULLNAME,INN,ADRESS1) VALUES ('@FULLNAME,'@INN','@ADRESS1')"
            ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT id, fullname, inn, adress1 FROM sprclient ORDER BY fullname">
        </asp:SqlDataSource>
        <asp:Label ID="Label1" runat="server" Text="Label" Width="755px"></asp:Label>
        <asp:Panel ID="Panel1" runat="server" Height="636px" ScrollBars="Auto" Width="756px">
            <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" Height="626px"
                Width="729px" DataKeyNames="ID" AllowPaging="True" AutoGenerateColumns="False" PageSize="20" OnRowUpdating="GridView1_RowUpdating">
                <Columns>
                    <asp:BoundField DataField="INN" HeaderText="ИНН" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:BoundField>
                    <asp:BoundField DataField="FULLNAME" HeaderText="Название" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:BoundField>
                    <asp:BoundField DataField="ADRESS1" HeaderText="Адрес" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:BoundField>
                    <asp:CommandField ButtonType="Button" CancelText="Отмена" DeleteText="Удал" EditText="Изм"
                        ShowEditButton="True" HeaderText="Редактирование" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:CommandField>
                </Columns>
            </asp:GridView>
        </asp:Panel>
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36737100
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2 В коммаде UPDATE парметры @xx не заменяются на значения.
А если применить "?" вместо "@" ?

P.S. Хотя для FoxPro есть другой control: ObjectDataSource и код для работы с данными рекомендуется писать "руками"...

Еще проблемы могут быть со строкой подключения - там должно быть разрешено вносить изменения...
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36741977
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Спасибо за ответ. Начала проторивать дорогу к ObjectDataSource, но есть вопрос: методы бизнес-класса, реализующие выборку, добавление, удаление, обновление какой тип данных должны возвращать, чтобы без проблем привязаться, например, к GridView, DataSet или DataTable ?
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36742037
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2Sergey Ch,

Спасибо за ответ. Начала проторивать дорогу к ObjectDataSource, но есть вопрос: методы бизнес-класса, реализующие выборку, добавление, удаление, обновление какой тип данных должны возвращать, чтобы без проблем привязаться, например, к GridView, DataSet или DataTable ?
Тип данных почти любой - dataset, datateble, List<T> etc...

Вот бесплатная книга, специально выпущенная для программистов FoxPro к сожалению он на английском языке: тынц многое уже устарело, так как команда разработчиков FoxPro от Microsoft много уже чего перенесла от FoxPro в .NET 3.5 & 4.0, но основные принципы еще работают...

Happy reading!
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36746663
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Вот код страницы и .CS файла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
        <asp:ObjectDataSource ID="ObjDataSource1" runat="server" TypeName="sprclient" SelectMethod="Select" UpdateMethod="Update">
            <UpdateParameters>
                <asp:ControlParameter ControlID="HiddenField1" Name="ID" PropertyName="Value" />
                <asp:ControlParameter ControlID="TextBox1" Name="FULLNAME" PropertyName="Text" />
                <asp:ControlParameter ControlID="TextBox2" Name="INN" PropertyName="Text" />
                <asp:ControlParameter ControlID="TextBox3" Name="ADRESS1" PropertyName="Text" />
            </UpdateParameters>
        </asp:ObjectDataSource>
        <asp:HiddenField ID="HiddenField1" runat="server" />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" />
        <asp:Panel ID="Panel1" runat="server" Height="636px" ScrollBars="Auto" Width="756px">
            <asp:GridView ID="GridView1" runat="server" DataSourceID="ObjDataSource1" Height="626px"
                Width="717px" DataKeyNames="ID" AllowPaging="True" AutoGenerateColumns="False" PageSize="20" OnRowUpdating="GridView1_RowUpdating">
                <Columns>
                    <asp:BoundField DataField="INN" HeaderText="ИНН" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:BoundField>
                    <asp:BoundField DataField="FULLNAME" HeaderText="Название" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:BoundField>
                    <asp:BoundField DataField="ADRESS1" HeaderText="Адрес" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:BoundField>
                    <asp:CommandField ButtonType="Button" CancelText="Отмена" DeleteText="Удал" EditText="Изм"
                        ShowEditButton="True" HeaderText="Редактирование" >
                        <HeaderStyle BackColor="Gray" />
                    </asp:CommandField>
                </Columns>
                <EditRowStyle BackColor="Teal" />
                <AlternatingRowStyle BackColor="#E0E0E0" />
            </asp:GridView>
        </asp:Panel>
Default.apsx.cs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
    public partial class _Default : System.Web.UI.Page
    {
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            HiddenField1.Value = GridView1.DataKeys[e.RowIndex].Value.ToString();
            TextBox1.Text = GridView1.Rows[e.RowIndex].Cells[ 0 ].Text;
            TextBox2.Text = GridView1.Rows[e.RowIndex].Cells[ 1 ].Text;
            TextBox3.Text = GridView1.Rows[e.RowIndex].Cells[ 2 ].Text;
        }
     }

    public class sprclient
    {
        protected OleDbDataAdapter vfpDA;
        protected DataSet DS;
        public sprclient()
        {
            vfpDA = new OleDbDataAdapter("SELECT id, fullname, inn, adress1 FROM SPRCLIENT", ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        }
        public DataSet Select()
        {
            DS = new DataSet();
            vfpDA.Fill(DS);
            return DS;
        }
        public void Update(string ID, string INN, string FULLNAME, string ADRESS1)
        {
        }
    }
Пишет ошибку
[InvalidOperationException: Не удается найти тип объекта данных, указанный в свойстве TypeName ObjectDataSource 'ObjDataSource1'.]
Чё ему надо ?
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36746976
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2Пишет ошибку
[InvalidOperationException: Не удается найти тип объекта данных, указанный в свойстве TypeName ObjectDataSource 'ObjDataSource1'.]
Чё ему надо ?
Необходимо указать полный путь к Вашему объекту "sprclient". Если у Вас присутствует Namespace, то надо и его указывать,
например: TypeName="Bll.MyApp.sprclient" где "Bll.MyApp" namespace...

P.S. Ваши вопросы уже не имеют почти никакого отношения к FoxPro - если хотите, могу перенести Ваш топик в ASP.NET...
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36747045
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Добавил путь к классу. Это побороли.
На счет переноса ветки не против.
Одно смущает: ObjectDataSource каждый раз создает заново класс указанный в TypeName. Если я создам DataSet при выборке, т.е. когда выполниться метод Select, он же будет уничтожен, а при вызове Update метода DataSet`а уже не будет. Может поэтому во время исполнения опять возникает ошибка "Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей." вот здесь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        public void Update(string ID, string INN, string FULLNAME, string ADRESS1)
        {
            OleDbCommandBuilder CommandBuilder = new OleDbCommandBuilder(vfpDA);
            // тут ошибка
            vfpDA.UpdateCommand = CommandBuilder.GetUpdateCommand();
            vfpDA.Update(DS, DS.Tables[ 0 ].ToString());
        }
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36747192
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2... Если я создам DataSet при выборке, т.е. когда выполниться метод Select, он же будет уничтожен, а при вызове Update метода DataSet`а уже не будет. Может поэтому во время исполнения опять возникает ошибка "Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей."
Я не знаю, где Вы взяли пример, но лично я так никогда не делаю, по этому даже не буду смотреть в деталях, что Вы там пытаетесь делать...

Для того, чтобы обновить таблицу FoxPro там должен быть физически создан primary key - без этого обновление работать не будет в принципе.

Объект DataSet, созданный Вами при выполнении команды Select не уничтожается. После DataBinding к Вашему GridView он как-бы становится частью страницы и как-бы живет в ViewState (зависит от многих факторов).

Я бы все-таки посоветовал что-то почитать по ASP.NET, поделать предлагаемые примеры...
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36747915
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Читаю. Вижу примеры, пытаюсь их применить к Fox, ибо они все поголовно написаны применительно к MS SQL. Применительно к OleDBxxxx классам примеров вообще нет. Видать MS окончательно похоронила VFP (а зря). Появляется масса ошибок, нестыковок, много что просто не работает. Пример, кстати я взял в той ссылке что Вы мне дали. Первичный ключ в таблице есть. А вот есть ли он в DataSet без понятия. Отладчик почему-то не работает (не останавливается на точках останова), поэтому посмотреть что там "внутри" нет никакой возможности.
авторЯ не знаю, где Вы взяли пример, но лично я так никогда не делаю
А как делаете ?
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36749368
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Применительно к OleDBxxxx классам примеров вообще нет. Видать MS окончательно похоронила VFP (а зря).

- зря Вы так - примеров огромное множество, в .NET есть даже специальный класс, которые делает все тоже, что и для SQL Server. Вот только один пример как можно работать с OleDbProvider: тынц Обратите внимание, что параметры в query задаются как "?" для OleDbProvider а не как "@" для SQL Server (вот и все отличие + немного другие названия для базовых классов).

Есть очень хороший сайт у Рика, где можно скачать даже магазин и посмотреть, как он все это сделал: тынц


Появляется масса ошибок, нестыковок, много что просто не работает. Пример, кстати я взял в той ссылке что Вы мне дали. Первичный ключ в таблице есть. А вот есть ли он в DataSet без понятия.

- есть

Отладчик почему-то не работает (не останавливается на точках останова), поэтому посмотреть что там "внутри" нет никакой возможности.

- это надо исправлять. Какая у Вас Visual studio, OS? Отладчик работает очень хорошо, если Вы запускаете WebSite через Debugger...

А как делаете ?

- очень сложный вопрос, так как последние три года у меня все проекты исключительно с MS SQL Server и Oracle
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36753443
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

авторВот только один пример как можно работать с OleDbProvider: тынц Обратите внимание, что параметры в query задаются как "?"
На счет "?" я уже увидел в других форумах. Только не понятно как распеределяются параметры. В порядке их добавления в коллекцию Parameters ? В указанном примере ODBC-классы, а не OleDb.
авторЕсть очень хороший сайт у Рика, где можно скачать даже магазин и посмотреть, как он все это сделал: тынц
Отпадает. Он не на русском.
автор- это надо исправлять. Какая у Вас Visual studio, OS? Отладчик работает очень хорошо, если Вы запускаете WebSite через Debugger...
Отладчик работал сначал. Потом внезапно перестал. Я так и не понял почему. OS -Windows 7, VS -2005. Куда там ткнуться, чтобы на точках останова дебагер останавливался ?
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36753496
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot thunder2]На счет "?" я уже увидел в других форумах. Только не понятно как распеределяются параметры. В порядке их добавления в коллекцию Parameters ? В указанном примере ODBC-классы, а не OleDb.

- я делал всегда строго в порядке появления параметров в Вашем запросе или SP.
- для ODBC и OleDb все очень похоже

Отпадает. Он не на русском.

- английский надо подтягивать - всегда пригодится в жизни

Отладчик работал сначал. Потом внезапно перестал. Я так и не понял почему. OS -Windows 7, VS -2005. Куда там ткнуться, чтобы на точках останова дебагер останавливался ?

- я бы попробовал для начала сделать reset visual studio: например так...

Удалить folder: C:\Documents and Settings\<* user *>\Application Data\Microsoft\VisualStudio\8.0

Good luck!
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36753532
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

автор- я бы попробовал для начала сделать reset visual studio: например так...

Удалить folder: C:\Documents and Settings\<* user *>\Application Data\Microsoft\VisualStudio\8.0

Не помогло. Беда !
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36753776
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2Не помогло. Беда !
А вот это пробовали ?

Я бы на Вашем месте начал с английского - дело в том, что если Вы встретитесь с проблемой, то скорее всего уже ее кто-то решил и выложил решение в Internet. Как Вы знаете, английский язык пока является междунароным языком общения. Зная английский - Вы легко посредством Google сможете найти ответы на Ваши вопросы...

P.S. В настоящее время народ дружно мигрирует с VS2008 на VS 2010 и .NET 4.0...
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36754504
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChP.S. В настоящее время народ дружно мигрирует с VS2008 на VS 2010 и .NET 4.0...
Черта лысого туда мигрируешь! :)
Compact Framework НЕ поддерживается в VS 2010 :(
С уважением, Алексей
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36755575
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Попробую. Если не поможет наверное придется VS переустанавливать.
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36755576
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще думаю ветку надо просто удалять. Конкретных решений я всё-равно не вижу. Ни кода, ни примера. Видимо ответы придется искать не здесь.
...
Рейтинг: 0 / 0
VFP + ASP.NET есть проблемы. Нужна помощь.
    #36755655
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2Вообще думаю ветку надо просто удалять. Конкретных решений я всё-равно не вижу. Ни кода, ни примера. Видимо ответы придется искать не здесь.
Я же Вам писал сразу - есть форум по ASP.NET и есть специальный форум по работе с базами данных...
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP + ASP.NET есть проблемы. Нужна помощь.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]