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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конструирование строки запроса 
:(
    Опции темы
Vit
Дата 3.5.2007, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



А есть какие-нибудь штатные средства конструирования строки запроса, задания пеараметров и их значений?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Pankon
Дата 3.5.2007, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



System.Collections.Specialized.NameValueCollection - использутся для всех структур типа: пара(строковый ключ -> строковое значение)...
Этот класс использует и Framework для хранения строки запроса "Request.QueryString"...
А о 
Цитата
штатные средства конструирования строки запроса
 не слышал...
PM MAIL   Вверх
Дрон
Дата 3.5.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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

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



Vit, я вот что-то не очень хорошо понял вопрос. 
Вероятно, ты спрашиваешь о том, что уже использовал в Дельфи? Можешь подробнее объяснить чего тебе нужно.
Ты хочешь составлять запросы во время выполнения программы, или тебе нужен какой-то визуальный дизайнер?


--------------------
Да. Именно так.
PM   Вверх
Vit
Дата 3.5.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Поясняю, вещь простая до ужаса, уверен что реализация не только есть но и примитивно простая...

Строка url:

Код

www.mysite.com?param1=value1&param2=value2...


Мне надо построить её как-нибудь так:

объект.какойтометод("param1")=value1
объект.какойтометод("param2")=value2

Пока знаю лишь, как построить её примитивной контакенацией строк:


URL="www.mysite.com?param1="+value1+"&param2="+value2...

Последний метод естественно весьма нерационален


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Дрон
Дата 3.5.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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

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



Хмм... Да, штука простая, но я вот что-то в стандартной библиотеке не встречал. Не буду утверждать что такого нет -- но сам не видел.

В принципе, такое и самому написать не проблема. Как раз, можно использовать NameValueCollection для хранения пар "параметр"-"значение", а дальше собрать из них правильный url.


PS: Блин, а я чего-то поначалу о запросах в БД начал думать smile

Это сообщение отредактировал(а) Дрон - 3.5.2007, 18:28


--------------------
Да. Именно так.
PM   Вверх
Pankon
Дата 3.5.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

        Dim col As New System.Collections.Specialized.NameValueCollection
        col.Set("x0", "Y0")
        col.Add("x1", "12")
        col.Set("x0", "Ynew")
        .....
        Dim query As String = "www.mysite.com?"
        For Each s As String In col.Keys
            query &= s & "=" & col(s) & "&"
        Next

PM MAIL   Вверх
tol05
Дата 8.5.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Вот, надыбал smile

Код

UriBuilder urlBuilder = new UriBuilder();
          urlBuilder.Host = "www.microsoft.com";
          urlBuilder.Password = "PAROL";
          urlBuilder.Path = "/BillPage/O-La-la";
          urlBuilder.Port = 90;
          urlBuilder.Query = "form1=08";
          urlBuilder.Scheme = "ftp";
          urlBuilder.UserName = "Bill";
          urlBuilder.Fragment = "Welcome to the new uri";


urlBuilder.ToString() выдает:
ftp://Bill:[email protected]:90/Bil...orm1=08#Welcome to the new uri

немного не то, что хотелось, каждый фрагмент uri - одиночный, строковый.
Но все же хоть какая-то автоматизация синтаксиса.

Ну, а для отдельных частей uri - свои методы, с конкатенацией в одну строку.

Это сообщение отредактировал(а) tol05 - 8.5.2007, 22:13


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Medved
Дата 11.5.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



Цитата(Дрон @  3.5.2007,  21:22 Найти цитируемый пост)
Блин, а я чего-то поначалу о запросах в БД начал думать

SqlCommandBuilder?


Цитата(Vit @  3.5.2007,  21:15 Найти цитируемый пост)
Мне надо построить её как-нибудь так:

объект.какойтометод("param1")=value1
объект.какойтометод("param2")=value2

Пока знаю лишь, как построить её примитивной контакенацией строк:


URL="www.mysite.com?param1="+value1+"&param2="+value2...

Последний метод естественно весьма нерационален 


Код

Response.Redirect("Default.aspx?Uname=God");

Response.Write(Request.QueryString["Uname"]);


Request.QueryString - Gets the collection of HTTP query string variables. 

Namespace: System.Web
Assembly: System.Web (in system.web.dll)

Код

int loop1, loop2;
 
// Load NameValueCollection object.
NameValueCollection coll=Request.QueryString; 
// Get names of all keys into a string array.
String[] arr1 = coll.AllKeys; 
for (loop1 = 0; loop1 < arr1.Length; loop1++) 
{
   Response.Write("Key: " + Server.HtmlEncode(arr1[loop1]) + "<br>");
   String[] arr2 = coll.GetValues(arr1[loop1]);
   for (loop2 = 0; loop2 < arr2.Length; loop2++) 
   {
      Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
   }
}




--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Medved
Дата 14.5.2007, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



Не совсем по сабжу топика, но встретил хорошую реализацию работы с параметрами:
http://msdn2.microsoft.com/en-us/library/ms998532.aspx


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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