Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры



Выпуск # 350


http://www.kbyte.ru/

 

Новый выпуск!

Здравствуйте!
Очередной выпуск рассылки Kbyte.Ru!

 

Содержание выпуска

Система ЭКСПЕРТ

    Вопрос #001017: Бесплатные программы

    Вопрос #001014: Avi и Mpeg4 в Visual Basic

    Вопрос #000952: Обработка файлов в C# (.NET 2.0)

    Вопрос #000947: Секундомер

    Вопрос #000937: DLOOKUP??

Последнее на форумах

    Проблемы с XP-шным стилем Common Controls

    Загрузка даных из Access в Combobox

    проблемы с Combobox на C#

    Login control

    Динамическое добавление ссылок

Последние статьи

    Нестандартная форма

    Как узнать размер базы данных MySQL через php

    Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)

    Работа с SQL – Запросы

    Использование XML.Serialization

Интересные коды и решения

Юмор на Kbyte.Ru

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, просто спросите и получите ответ ;-)


Вопрос #001017: Бесплатные программы

Автор вопроса: Sarj // 03.06.2008 / 08:56

Уважаемые эксперты, поскажите пожалуйста бесплатный аналог Corel Draw. Очень надо...

.....

Отвечает: Алексей Немиро // 03.06.2008 / 09:02

Здравствуйте, Sarj.

http://inkscape.org/

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #001014: Avi и Mpeg4 в Visual Basic

Автор вопроса: алексей // 02.06.2008 / 12:36

Как можно проигрывать эти форматы в вижал бэйсик? Пример на сайте не работает.

.....

Отвечает: Алексей Немиро // 02.06.2008 / 12:43

Здравствуйте, Алексей.

Можно использовать MediaPlayer. Для этого его нужно подключить к
проекту через меню Project (Проект) -> Components (Компоненты), в
появившемся окне найти и выбрать Windows Media Player. Далее, в
панели инструментов должна появиться иконка плеера, который можно
разместить на форме. Указать файл для проигрывания можно
в свойство URL, или FileName в зависимости от версии проигрывателя.

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000952: Обработка файлов в C# (.NET 2.0)

Автор вопроса: Сергей // 09.05.2008 / 18:07

Доброе время суток!
В общих словах, такая задача поставлена передо мной: На веб-странице
пользователь выбирает файл, нажимает кнопку "Импорт" и из этого файла
данные импортируются в таблицу БД Oracle.
Файл должен быть текстовым, первые 2 строки- информация о времени и
логине того, кто выгружал. После них идут строки данных, поля
разделяются симоволом | .
Просьба дать ссылки на документацию по работе с файлами, которые могут
помочь :-)

Отвечает: Алексей Немиро // 12.05.2008 / 10:34

Здравствуйте, Сергей.

Необходимые классы и функции для работы с файлами лежак в пространстве имен System.IO. Также Вам могут понадобиться классы для работы с регулярными выражениями, которые лежат в пространстве имен System.Text.RegularExpressions.
Что касается импорта файлов, то данные можно взять прямо из потока FileUpload.PostedFile.InputStream, передать их в StreamReader и обработать при помощи регулярных выражений.

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000947: Секундомер

Автор вопроса: Александр // 08.05.2008 / 17:40

Добрый день!
Как сделать секундомер на сайте kbyte.ru много но вот все они выдают результат как 345сек, а мне надо 1:45:01 то есть в временом формате. Как сделать???

.....

Отвечает: Алексей Немиро // 09.05.2008 / 08:29

Здравствуйте, Александр.

Зная, что в минуте 60 секунд, в часе 60 минут, а в сутках 24 часа, можно легко превратить 345 секунд в нужный формат.
001:
002:
003:
004:
005:
006:
007:
008:
009:
Dim sec As Integer
sec = 345
Dim ssec As Integer, min As Integer, hour As Integer
If sec > 59 Then
 min = Int(sec / 60)
 ssec = sec Mod 60
End If
If min > 59 Then hour = Int(min / 60)
MsgBox sec & " сек. = " & hour & " ч. " & min & " мин. " & ssec & " сек."



--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000937: DLOOKUP??

Автор вопроса: Алексей // 05.05.2008 / 16:37

Почему те поля формы, которые имеют в ControlSource функцию Dlookup не записывают значение полей в конечную таблицу?

--------------------------------------
Категория: --- MS Access

Отвечает: Алексей Немиро // 06.05.2008 / 05:24

Здравствуйте, Алексей.

Из справки MS Access: Функция Dlookup
При использовании этой функции не учитываются
несохраненные изменения записей подмножества. Если функция
DLookup должна использовать измененные значения, необходимо сначала сохранить
изменения с помощью команды Сохранить запись в меню
Записи, с помощью перемещения фокуса на другую запись или
метода Update.


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Последнее на форумах

Проблемы с XP-шным стилем Common Controls | Автор: DIS
Добавлено: 01.08.2008 / 14:47 | ответов: 1 | просмотров: 35

Для изменения стиля основных контролов на форме (Textbox, CommandButton и т.п.) достаточно добавить в программу ресурс с описанием common controls, и в откомпилированном приложении все основные контролы выглядят в стиле XP. Но такие компоненты как ListView, TreeView и ProgressBar остаются прежними :( . Подскажите пожалуйста, можно ли как-нибудь обновить и эти компоненты?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Игорь Голов
Добавлено:01.08.2008 / 16:00
Боюсь только вручную.
К сожалению, подробностей я не помню :(

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Загрузка даных из Access в Combobox | Автор: LinuxChata
Добавлено: 31.07.2008 / 23:56 | ответов: 0 | просмотров: 32

Нужно, чтобы из базы данных Access загружались значения ключевого поля в Combobox. Пользователь выбирает нужное значение в Combobox и значения полей базы данных отображаются в TextBox.

Подключаю базу данных через Add New Data Source..., устанавливаю, чтобы ключевое поле было списком, а остальные поля -- TextBox-ами. Перетаскиваю все на форму. Запускаю программу. Значения полей правильно отображаются, но Сombobox показывает только одно значение.

Как сделать, чтобы Сombobox отображал все значения записанные в ключевое поле БД??
Работаю с Visual Basic NET

P.S. Заранее благодарен за помощь

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


проблемы с Combobox на C# | Автор: densmile
Добавлено: 29.07.2008 / 10:18 | ответов: 1 | просмотров: 83

Всем привет!
подскажите пожалуйста, что надо поменять или настроить чтобы при выборе элемента из списка в comboBoxe текс не уходил за левую границу (такое ощущение, что идет выравнивание по правому краю), а оставался как и был написан с лева на право от левой границе.
Делал новый Combobox тоже самое.
По умолчанию первый элемент становится правильно.

Заранее всем благодарен.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Edlin
Добавлено:30.07.2008 / 09:34
Посмотри свойство RightToLeft.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Login control | Автор: Mefisto
Добавлено: 24.07.2008 / 22:43 | ответов: 7 | просмотров: 272

подскажите общие принципы работы с этим контролом, в сети по этому контролу инфы просто нету, или так смотрел, если есть линки на статьи поделитесь :)

P.S Почем я не могу изменить значения контрола из HTML кода? т.е имеем label, и в режиме дизайна html'a я делаю так <% Label1.Text="test" %> но при загрузке страницы текст у label'a не меняется, приходиться использовать Response.Write, что не так?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:25.07.2008 / 02:32
подскажите общие принципы работы с этим контролом

много букофф придется писать, первым делом посмотри в сторону Membership, если увиденное не понравится, то значит этот контрол тебе не нужен, пока :)

делаю так <% Label1.Text="test" %> но при загрузке страницы текст у label'a не меняется

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

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Mefisto
Добавлено:25.07.2008 / 03:11
хм, посмотрел в MSDN примеры, я много прочитал про FormsAuthentication, там же и про то как запоминать по кукам, шифрование и т.д, но в статье всё ручками писалось, вот думал через контрол попробовать :) ну буду дальше тогда разбираться, мож наткнусь где на статью именно по контролу
так лучше не делать, такие вещи делаются в коде, например можно в процедуре Page_Load().

Тут много не понятных вещей происходит, например выполняется большой цикл по истечению которого нужно на Label'e сменить текст, я просто думал эти контролы для этого и нужны, а щас попробовал но только через Page_load всё меняется, неуж-то только явой скриптом можно, странно, ещё меняю высоту у TextBox'a, в режиме дизайна всё поменялось как нужно, запускаю а там как было так и есть :) попробую через CSS, вообще можно обращаться к контролам и менять их свойства не только в Page_Load?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:25.07.2008 / 03:22
хм, посмотрел в MSDN примеры, я много прочитал про FormsAuthentication, там же и про то как запоминать по кукам, шифрование и т.д, но в статье всё ручками писалось, вот думал через контрол попробовать :) ну буду дальше тогда разбираться, мож наткнусь где на статью именно по контролу

собственно там ничего писать не нужно, поставил, и пользуйся :)
нужные свойства можно визуально настроить.

Page_load всё меняется, неуж-то только явой скриптом можно

Page_Load - это не JavaScript :)
При создании файла ASPX в Visual Studio рекомендую поставить галку "Place code in separate file"
думаю тогда все сразу станет ясно :)

ещё меняю высоту у TextBox'a, в режиме дизайна

дизайнер - зло :) руками все делается проще и быстрее.
Высоту TextBox-а при условии, что не стоит TextMode=Multiline
поменять не получится, хотя если css использовать, должно поменяться,
может даже будет кросбраузерно :)

к контролам и менять их свойства не только в Page_Load?

нет :) события бывают разные, Page_Load всего-лишь одно из них.
А где и что менять, зависит от конкретных задач.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Mefisto
Добавлено:25.07.2008 / 03:33
ну что то проясняеться
При создании файла ASPX в Visual Studio рекомендую поставить галку "Place code in separate file"

Так и не нашёл :)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Алексей
Добавлено:25.07.2008 / 03:41
В молодости, когда я эмигрировал с классического ASP, я написал
статейку, как руками отделить vb-код от html, правда она уже
беспонтовая и устарела, но думаю поможет http://aleksey.nemiro.ru/Programming/ASP-NET/Otdevnui-ASP-kod.nspx

скрин из VS 2k8 (в 2k5 также, 2k3 не помню) в прикрепленном файле.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Mefisto
Добавлено:25.07.2008 / 23:34
Спасибо нашел теперь, но всё таки не могу разобраться как осуществляется проверка залогинился человек или нет, иемнно через контрол, сутки в мсдн просидел, смотрел примеры, а не нашёл что нужно, помогите плз, вот что пока понял :)
Создаю Login.aspx, в WebConfig пишу:
001:
002:
003:
004:
005:
006:
<authentication mode="Forms">
 <forms name="ASP_XML_Form" loginUrl="login.aspx" protection="All"
  timeout="30" path="/" requireSSL="false" slidingExpiration="true" />
</authentication>

Colorized by: Eros.CodeSyntaxColor Engine

Хотя чувствую что для контрола это не нужно :) далее, в событии контрола Login1_LoggedIn пишу такую вот проверку:
001:
002:
003:
004:
005:
If Login1.UserName = "name" And Login1.Password = "123456" Then

    End If

Colorized by: Eros.CodeSyntaxColor Engine

и дальше не знаю что делать :) вот несколько вопросов:
1.Как проверить поставлена ли галочка "Запомнить меня" и в следующий раз если она была отмечена сразу на страницы попадать а не на форму с контролом
2.Что делать если введены верные параметры? как установить куки(если галка отмечена) и сказать контролу что данные правильны и нужно показывать главную страницу
3.Как проверять что человек залогинен на других страницах вроде Default.aspx и если нет то на форму регистрации отправлять

Вот собстно, помогите плз :) очень хочеться научиться через контрол работать

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Алексей
Добавлено:27.07.2008 / 12:12
1. Создаем новый веб-проект
2. Создаем конфиг в корне и пишем (добавляем):
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
<system.web>
    <authentication mode="Forms">
      <forms  defaultUrl="~/admin"
              loginUrl="~/login.aspx"
              timeout="43200"
              slidingExpiration="true"
      >
        <credentials passwordFormat="Clear">
          <user name="admin" password="admin" />
        </credentials>
      </forms>
      
    </authentication>
</system.web>

3. Создаем страницу login.aspx, на ней размещаем Login control
4. Создаем папку /admin (в корне проекта), в него пихаем Default.aspx
и пишем там в <body>Превед</body> (это очень важно, а то работать не
будет :) ...). Создаем в этой же папке web.config:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <authorization>
          <allow users="admin"/>
          <deny users="*"/>
        </authorization>
    </system.web>
</configuration>

все, запускаем, пытаемся сразу перейти в папку /admin, должно
редиректнуть на страницу ввода логина и пароля:
логин: admin
пароль: admin

1.Как проверить поставлена ли галочка "Запомнить меня" и в следующий раз если она была отмечена сразу на страницы попадать а не на форму с контролом
2.Что делать если введены верные параметры? как установить куки(если галка отмечена) и сказать контролу что данные правильны и нужно показывать главную страницу
3.Как проверять что человек залогинен на других страницах вроде Default.aspx и если нет то на форму регистрации отправлять

1. if Not Request.IsAuthenticated Then "не авторизирован"
3. Либо сделать свой контрол и разместить его на всех страницах, либо
использовать MasterPage, либо залогинить всю папку, как я написал выше.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Динамическое добавление ссылок | Автор: Mefisto
Добавлено: 24.07.2008 / 01:31 | ответов: 13 | просмотров: 449

Не знал как назвать тему, назвал как смог :) интересует такой вопрос, возьмем пример этот форум, т.е заходим на любой раздел и в низу страницы есть такие ссылки как:
Page: 1 | 2

Ведь это все генерируется динамически в зависимости от параметров, так вот, как это реализовывается? например у меня есть таблица, скажем при достижении 50 строк (<tr>) нужно сделать переход на вторую страницу где будут выведены остальные строки, и так далее. Или хотя бы в теории. Спасибо

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:24.07.2008 / 03:35
У нас сейчас это реализовано немного через "жо" :)
Делается два запроса к серверу, первый получат количество данных и
уже на основе количества данных рассчитывается необходимое количество
страниц. Далее, стандартными средствами, через DataAdapter получаются
данные для нужной страницы
DataAdapter.Fill(DataSet, iRecordStart, iRecordMax, "DefaultTable")

В идеале, все можно сделать на стороне SQL Server-а, в том числе и
сформировать список страниц, причем все в одном запросе.
SELECT (SELECT COUNT(*) FROM Table1) AS TotalRecordCount, * FROM Table1
Здесь мы получаем количество данных в поле TotalRecordCount, и все данные.

Для постраничного вывода можно использовать один из ниже указанных методов.
001:
002:
003:
004:
005:
SELECT TOP 100 * FROM MyTable
WHERE id NOT IN (SELECT TOP 100 id FROM MyTable ORDER BY id) ORDER BY id

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
REATE PROCEDURE dbo.get_this_page (@rec_per_page int, @page_num int) AS

SELECT identity(int, 1,1) AS RowNum, MyId AS OrigId INTO #tmp FROM mytable
SELECT b.* FROM #tmp AS a
INNER JOIN mytable AS b ON a.OrigId = b.MyId
WHERE a.RowNum BETWEEN (@rec_per_page * @page_num + 1)
  AND (@rec_per_page * (@page_num + 1))

DROP TABLE #tmp

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
/*
Создаем тестовую таблицу. По полям i1 и d строим уникальные индексы
*/
set nocount on
create table list (
id int identity(1,1) primary key,
i1 int,
i2 int,
d datetime
)
CREATE INDEX ind_i ON list(i1)
CREATE INDEX ind_d ON list(d)
go

set nocount on
declare @i int
declare @m int
set @i=1
while @i<=30
begin
    insert into list (i1) values (null)
    set @i=@i+1
end

/*
Заполняем тестовую таблицу. В поля i1 и i2 заносим числа от 1 до 30, а в d даты с 1 по 30 января
2000 года
*/

select id into #t from list
while exists (select * from list where i1 is Null)
begin
    set @i=rand()*30+1
    set @m=(select max(id) from #t)
    update list
    set i1=@m,
    i2=@m,
    d=convert(datetime,'20020101',112)+@m-1
    where id=@i and i1 is null
    if @@rowcount>0
    delete from #t where id = @m
end
drop table #t

go

--Выбираем "строки" с 11 по 20


/*
Даже если выборка идет по первичному ключу его лучше указать.
В противном случае возможны всякие неожиданности
*/
SELECT identity(int,1,1) AS RowNum, convert(int,id) as id 
into #t FROM list with (index(0))

select t.RowNum as [По id],t.id,l.i1,l.i2,l.d from #t t
join list l on l.id=t.id
where RowNum between 11 and 20
order by RowNum
drop table #t
go

/*
Выборка по полю, по которому нет индекса
Этот код не будет работать так, как надо, несмотря на order by i2
Подробднее об этом написано здесь - http://support.microsoft.com/default.aspx?scid=kb;en-us;273586
*/
SELECT identity(int,1,1) AS RowNum, i2, convert(int,id) as id
into #t FROM list
order by i2

select t.RowNum as [По i2],l.id,l.i1,t.i2,l.d
from #t t
join list l on l.id=t.id
where RowNum between 11 and 20
order by RowNum
drop table #t
go

/*
Выборка по полю, по которому индекс построен
Этот код делает то, что надо
*/
SELECT identity(int,1,1) AS RowNum, i1, convert(int,id) as id i
nto #t FROM list with (index(ind_i))

select t.RowNum as [По i1],t.id,t.i1,l.i2,l.d
from #t t
join list l on l.id=t.id
where RowNum between 11 and 20
order by RowNum

drop table #t
go

/*
Выборка по дате в порядке убывания
*/

SELECT identity(int,1,1) AS RowNum, d, convert(int,id) AS id
INTO #t FROM list with (index(ind_d))
ORDER BY d DESC

SELECT t.RowNum AS [По d],t.id,l.i1,l.i2,t.d
FROM #t t
JOIN list l ON l.id=t.id
WHERE RowNum BETWEEN 11 AND 20

DROP TABLE #t
go
DROP TABLE list

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


Еще, можно использовать GridView, он сам все сделает, только нужно
поставить свойство AllowPaging = True, правда ссылки на страницах
создаются JavaScript-ые, если это не критично, то можно его использовать.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Mefisto
Добавлено:24.07.2008 / 04:17
Во блин, спасибо за ответ, только я запутался, я знаю лишь некоторые команды SQL, чтение/запись/создание, но тут так и не разобрался, можно простенький пример? у меня ASP.NET + VB.NET, и SQL Server, есть таблица table1 в нём 2 colums'a это id и txt, в id я поместил 100 записей, я просто не понял немного вот это:
001:
002:
003:
Select (Select COUNT(*) FROM Table1) As TotalRecordCount, * FROM Table1

Colorized by: Eros.CodeSyntaxColor Engine

и это
001:
002:
003:
004:
Select TOP 100 * FROM MyTable
WHERE id Not In (Select TOP 100 id FROM MyTable ORDER BY id) ORDER BY id

Colorized by: Eros.CodeSyntaxColor Engine

Остальное меня вообще убило :) если не трудно вот на основе того что сейчас есть и описано выше, как можно сделать :) просто синтаксис вообще не знаком и не понятен )

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:24.07.2008 / 14:23
SELECT TOP 10 * FROM table1
WHERE id NOT IN (SELECT TOP 10 id FROM table1 ORDER BY id) ORDER BY id

10 нужно умножать на текущую страницу, т.е. примерно:
myCmd.CommandText = "SELECT TOP 10 * FROM table1 WHERE id NOT IN (SELECT TOP " & (10 * 1).ToString() & " id FROM table1 ORDER BY id) ORDER BY id"

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Mefisto
Добавлено:24.07.2008 / 16:54
Спасибо, сейчас вытаскивает по 10 строк, только мы всё про работу базы говорим, а как же ссылки добавлять? теоретически представляю как, но практически что то не выходит

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Mefisto
Добавлено:24.07.2008 / 20:29
Вообщем посидел подумал, реализовал всё таки, только как то тоже через "жо" :) делаю так:
При загрузке страницы получаем кол-во всех строк в таблице, далее делим это кол-во на кол-во строк которые стоит отображать, в итоге получаем кол-во страниц, ну и в цикле заполняем через Response.Write ссылки на страницы, а при нажатии на страницу выполняем этот запрос:
001:
002:
003:
Select TOP 10 * FROM table1 WHERE id Not In (Select TOP " & (10 * 1).ToString() & " id FROM table1 ORDER BY id) ORDER BY id

Colorized by: Eros.CodeSyntaxColor Engine

и в место единицы подставляем номер страницы которую нужно вывести, вот в принципе всё, как такая реализация?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Алексей
Добавлено:25.07.2008 / 02:23
Спасибо, сейчас вытаскивает по 10 строк, только мы всё про работу базы говорим, а как же ссылки добавлять? теоретически представляю как, но практически что то не выходит

001:
002:
003:
004:
005:
006:
007:
КоличествоСтраниц = КоличествоВсехДанных / КоличествоДанныхНаОднойСтранице
For i As Integer = 1 To КоличествоСтраниц
 literal1.Text &= String.Foramt("<a href='/default.aspx?page={0}'>{0}</a>", i)
Next

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

там еще с остатками надо по шаманить (может int(...) использовать).

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Алексей
Добавлено:25.07.2008 / 02:29
При загрузке страницы получаем кол-во всех строк в таблице

да, можно так, но можно одним запросом обойтись
001:
002:
003:
004:
SELECT TOP 10 *, (SELECT COUNT(*) FROM table1) AS TotalRecordCount FROM table1 WHERE id NOT IN (SELECT TOP " & (10 * 1).ToString() & " id FROM table1 ORDER BY id) ORDER BY id

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

в поле TotalRecordCount будет количество всех записей в таблице
table1, можно дергать его из любой строки, если строк нет, значит записей ноль :)

заполняем через Response.Write

контролов для этого дела в ASP .NET уйма. В предыдущем ответе я
показал на примере <asp:Literal />.

и в место единицы подставляем номер страницы которую нужно вывести

да,
Request("page"), но лучше
Dim page As Integer = 1
If Not Integer.TryParse(Request("page"), page) Then page = 1
...(10 * page).ToString()...

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: Алексей
Добавлено:25.07.2008 / 02:50
вот так еще лучше
If Not Integer.TryParse(Request("page"), page) OrElse page < 1 Then page = 1

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Mefisto
Добавлено:25.07.2008 / 03:16
в поле TotalRecordCount будет количество всех записей в таблице

я так понял поле это нужно создать в таблице и в него будет результат выведен кол-ва строк? остальное вроде всё понятно кроме вот этого
там еще с остатками надо по шаманить (может int(...) использовать).

Я просто округлял в большую сторону, даже если 1 запись то она идёт на новую страницу, вроде работает :)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 10 | Автор: Алексей
Добавлено:25.07.2008 / 03:25
я так понял поле это нужно создать в таблице и в него будет результат выведен кол-ва строк? остальное вроде всё понятно кроме вот этого

ничего не нужно создавать, это типа алиас.

Я просто округлял в большую сторону, даже если 1 запись то она идёт на новую страницу, вроде работает :

int по-моему тоже должен округлять в плюс: int(10/8)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 11 | Автор: Mefisto
Добавлено:25.07.2008 / 03:32
Разобрался, спасибо!

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 12 | Автор: Mefisto
Добавлено:27.07.2008 / 04:58
Оказывается про кое что забыл :) а как реализовывается максимальное кол-во страниц? т.е допустим как тут, 10 страничек и чтобы получить список с 10-20 нужно ссылочку нажать и т.д, по 1 странице я сообразил, а как по 10 показывать что то не могу понять, есть идеи?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 13 | Автор: Алексей
Добавлено:27.07.2008 / 12:18
непонятно что именно непонятно :)
я уже вроде все написал
001:
002:
003:
004:
005:
006:
007:
КоличествоСтраниц = КоличествоВсехДанных / КоличествоДанныхНаОднойСтранице
For i As Integer = 1 To КоличествоСтраниц
literal1.Text &= String.Foramt("<a href='/default.aspx?page={0}'>{0}</a>", i)
Next

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

001:
002:
003:
004:
SELECT TOP 10 *, (SELECT COUNT(*) FROM table1) AS TotalRecordCount FROM table1 WHERE id NOT IN (SELECT TOP " & (10 * Текущая страница).ToString() & " id FROM table1 ORDER BY id) ORDER BY id

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

Последние статьи

Нестандартная форма
Автор: Zhenik Ipatov | добавлено: 05.05.2008 / 12:42 | просмотров: 741

Первое что бросается в глаза, когда первый раз используешь программу это конечно же её облик, внешний вид. Есть вероятность что если пользователю не понравится внешний вид окна, то он не будет пользоваться продуктом. Значит нам, не побоюсь этого слова, программистам нужно как можно лучше, удобнее, понятнее, красивее и приветливее сделать лицо программы. Нужно как можно эффектнее преподнести программу. С самого первого появления Windows окна получили прямоугольный стандарт и все User Control’ы

Как узнать размер базы данных MySQL через php
Автор: Николай Рудченко | добавлено: 14.02.2008 / 13:01 | просмотров: 1194

В этой небольшой статье вы узнаете, как получить размер вашей базы данных (БД) MySQL используя язык программирования PHP.

Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Автор: Немиро Алексей | добавлено: 27.07.2007 / 14:01 | просмотров: 6341

В данной статье речь пойдет о том, как можно программно заполнить и отправить Web-форму, а также получить результат с использованием довольно простых классов - HttpWebRequest и HttpWebResponse.

Работа с SQL – Запросы
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 22.07.2007 / 04:43 | просмотров: 11004

В данной статье рассмотрены часто используемые SQL-запросы и приведены примеры их использования.

Использование XML.Serialization
Автор: Немиро Алексей | добавлено: 19.07.2007 / 15:38 | просмотров: 2984

В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Как запретить запуск двух копий программы?
Дата добавления: 04.08.2006 / 08:53 | просмотров: 1729 | платформа: VB

Как прочитать текстовой файл?
Дата добавления: 01.08.2006 / 11:24 | просмотров: 1992 | платформа: ASP

Анализ IP-адреса
Дата добавления: 24.03.2007 / 10:56 | просмотров: 1791 | платформа: RegEx

Как программно вызвать окно свойств (Properties) файла?
Дата добавления: 31.07.2006 / 12:42 | просмотров: 1783 | платформа: VB

Запись куков (Cookies)
Дата добавления: 31.07.2006 / 15:50 | просмотров: 1708 | платформа: ASP .NET (VB)

Как удалить все HTML-теги из текста?
Дата добавления: 24.03.2007 / 12:41 | просмотров: 2269 | платформа: VB .NET

Как отправить файл в корзину? (!API!)
Дата добавления: 24.03.2007 / 12:23 | просмотров: 1961 | платформа: VB .NET

Как узнать размер рабочей области экрана?
Дата добавления: 23.08.2006 / 19:03 | просмотров: 2401 | платформа: VB .NET

Как «залить» форму определенным фоном?
Дата добавления: 31.07.2006 / 12:09 | просмотров: 1570 | платформа: VB

Как программано выровнить форму по центру экрана?
Дата добавления: 23.08.2006 / 18:59 | просмотров: 2083 | платформа: VB .NET

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

Наша компания по перевозке мусора предоставляет следующую гарантию: если вы недовольны нашей работой, мы вернем ваш мусор в двойном размере.

 

Рейтинг: 275
Всего голосов: 437
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Мужик с работы приходит пьяный. Заходит на кухню холодильник открывает. Постоял посмотрел, разворачивается, хрясь жене подзатыльник. Жена думает: видно еды мало. На следующий день она забивает холодильник едой. Мужик пришёл с работы, опять дал жене подзатыльник. Жена думает: видно пива нет. На следующий день муж опять дал жене подзатыльник. Жена думает: еда есть, пиво есть, значит нету водки. Утром забила холодильник водкой, пивом, едой. Мужик, как обычно, пришёл пьяный, заглянул в холодильник, развернулся и дал жене ещё сильнее подзатыльник. Жена не выдержала:
- За что?
Мужик:
- Ты почему уже третий день в холодильнике свет не выключаешь!!!

 

Рейтинг: 329
Всего голосов: 541
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

К Билл Гейтсу подходит сын и говорит:
- Пап, покажи, что такое многозадачность!
- Погоди, сынок, сейчас дискету доформатирую…

 

Рейтинг: 400
Всего голосов: 642
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов.

 

Рейтинг: 444
Всего голосов: 641
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Три способа, которыми советские программисты достают программное обеспечение: воровство, грабеж, и обмен награбленным.

 

Рейтинг: 326
Всего голосов: 521
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Приходит учительница Вовочки к нему домой и жалуется папе, ваш сын нарисовал на моём столе муху я её била, била даже руку сломала. Это ещё ничего, отвечает папа он в ванне нарисовал крокодила, я так испугался, что даже из нарисованной двери выбежал.

 

Рейтинг: 330
Всего голосов: 513
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Здравствуйте!
Я новый полиморфный вирус-троян и распространяюсь по интернету.
Поскольку мой автор не умеет писать вирусов приносящих вред, Вы должны мне помочь.
Сделайте пожалуйста следующее:
1. Сотрите у себя на диске каталог c:\windows и C:\Program files
2. Отправьте это сообшение всем своим знакомым.
Заранее благодарен!

 

Рейтинг: 326
Всего голосов: 533
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- Как вы поняли, что это лев - людоед?
- Да взгляд у него, как у моей жены.

 

Рейтинг: 187
Всего голосов: 312
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Вчера астрономы "разжаловали" Плутон. Жители бывшей планеты обещают направить жалобу в Страсбургский суд.

 

Рейтинг: 394
Всего голосов: 610
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Контоpа наша сильно компьютеpизована, а охpана от безделья мается. Вот и пpиходилось их вечеpом, когда никого нет, иногда пускать поигpать на компьютеpе. Из-за великого облома, мне лень было ставить какую-либо игpу окpомя Quake. Так и получилось, что игpают охpанники наши только в Quake. Как-то pаз позвонили им из центpальной контоpы, с пpовеpкой - все ли ноpмально. И вот, значит, один из них, зажав тpубку между ухом и плечом и односложно отвечая на вопpосы, пытается убить очеpедного монстpа. Однако, pазговоp его отвлекает, и получается, что скоpее монстp сейчас сделает охpанника, а не охpанник монстpа. В конце концов настыpное виpтуальное создание тоpжествует победу над человеческим pазумом. И как pаз в этот момент охpанник, видимо, на заданный в очеpедной pаз вопpос:
- Hу и как там тебе, - pычит в тpубку, от волнения сьезжая на хpип
- Да хреново мне, убивают меня! Понятно?, - и бpосает
тpубку
Реакция системы охpаны и милиции была пpактически мгновенной. Пpимеpно чеpез пять минут в двеpи офиса уже ломился наpяд милиции, ожидая встpетить гpабителей, убивающих нашу охpану. Охpана, увидев непонятных мужиков (а кто сейчас веpит фоpме) пpиготовилась отбиваться из пушек или отсиживаться за толстой стальной двеpью (втоpое более веpоятно). К счастью, инцидент был быстpо исчеpпан, но больше охpана в игpы не игpала.

 

Рейтинг: 312
Всего голосов: 480
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное