Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP + ASP.NET есть проблемы. Нужна помощь. / 18 сообщений из 18, страница 1 из 1
12.07.2010, 21:50
    #36736973
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP + ASP.NET есть проблемы. Нужна помощь.
Господа !
У кого есть опыт общения 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
12.07.2010, 23:55
    #36737100
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP + ASP.NET есть проблемы. Нужна помощь.
thunder2 В коммаде UPDATE парметры @xx не заменяются на значения.
А если применить "?" вместо "@" ?

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

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

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

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

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

Happy reading!
...
Рейтинг: 0 / 0
17.07.2010, 21:53
    #36746663
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP + ASP.NET есть проблемы. Нужна помощь.
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
18.07.2010, 12:13
    #36746976
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP + ASP.NET есть проблемы. Нужна помощь.
thunder2Пишет ошибку
[InvalidOperationException: Не удается найти тип объекта данных, указанный в свойстве TypeName ObjectDataSource 'ObjDataSource1'.]
Чё ему надо ?
Необходимо указать полный путь к Вашему объекту "sprclient". Если у Вас присутствует Namespace, то надо и его указывать,
например: TypeName="Bll.MyApp.sprclient" где "Bll.MyApp" namespace...

P.S. Ваши вопросы уже не имеют почти никакого отношения к FoxPro - если хотите, могу перенести Ваш топик в ASP.NET...
...
Рейтинг: 0 / 0
18.07.2010, 13:53
    #36747045
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP + ASP.NET есть проблемы. Нужна помощь.
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
18.07.2010, 19:07
    #36747192
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP + ASP.NET есть проблемы. Нужна помощь.
thunder2... Если я создам DataSet при выборке, т.е. когда выполниться метод Select, он же будет уничтожен, а при вызове Update метода DataSet`а уже не будет. Может поэтому во время исполнения опять возникает ошибка "Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей."
Я не знаю, где Вы взяли пример, но лично я так никогда не делаю, по этому даже не буду смотреть в деталях, что Вы там пытаетесь делать...

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

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

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

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

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

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


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

- есть

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

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

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

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

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

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

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

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

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

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

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


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