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

Save in forms



Save in forms
2015-04-20 14:22 rusiko
Привет. В программе на VB.NET, написал код для refresh формы, но работает этот код не для всех datagrid. Ситуация такая: есть на форме 2 datagrid-а и в базе у них типы одинаковые (перепроверял базу несколько раз). Раньше была такая проблема: делал изменения в datagrid, но эти изменения сохранялись только после перезапуска приложения. Потом поставил этот код:

DataGridView1.ClearSelection()
        da.Fill(ds, "Saraytbl")
DataGridView1.DataSource = ds.Tables("Saraytbl")

DataGridView2.ClearSelection()
        da2.Fill(ds1, "Incometbl")
DataGridView2.DataSource = ds2.Tables("Incometbl")
Странное то, что для DataGridView1 работает этот код без проблем, но для DataGridView2 иногда не работает. Можно сказать что в 4-х случаях из 5-и этот код работает для DataGridView2, но иногда значения умножаются, то есть в DataGridView2 заполняешь две строки, а при нажатии на save получается 4 строки. Нужно перезапустить программу чтобы 2 лишние строки исчезли. Этот код я поставил в event для save и обе DataGridView находятся на одной форме.
Спасибо заранее.

LG представила в России три смартфона средней ценовой категории
2015-04-20 15:51

LG анонсировала в России линейку смартфонов средней ценовой категории. Magna, Spirit и Leon, позаимствовавшие ряд особенностей у топовых моделей, появятся в магазинах во второй половине мая. Все три смартфона отличаются изогнутой формой корпуса, а в двух старших изогнут и экран.



Россиянам предложили дать «право на забвение» в интернете
2015-04-21 15:22

Помощник президента России Игорь Щеголев предложил ввести в российском законодательстве «право на забвение» — предоставление возможности удаления из интернета частных данных пользователей по их желанию. Также он предложил расширить понятие персональных данных пользователя и ужесточить требования к интернет-сервисам.



Sony представила флагман Z4
2015-04-21 15:23

Японская Sony анонсировала свой новый флагманский смартфон — Xperia Z4. Устройство, как и предшественник Z3, имеет корпус в металлической рамке, 5,2-дюймовый LCD-экран, пыле- и влагозащиту. По cравнению с прошлогодним флагманом новый смартфон стал уже — 6,9 миллиметра толщиной и легче — 144 грамма.



Google, eBay и AliExpress согласились хранить данные россиян внутри страны
2015-04-21 15:23

Американские корпорации Google и eBay, а также китайская торговая площадка AliExpress будут хранить персональные данные россиян на серверах, располагающихся на территории РФ. Компании сообщили о намерении соблюдать поправки в законодательство страны, которые вступят в силу в сентябре.



Изменение кодировки уже собранной программы
2015-04-21 21:02 bulat_ibrahim
Здравствуйте. Я занимаюсь переводом программ на татарский язык, и, так как я имею мало опыта, сталкиваюсь с проблемами.
Для татарского языка нужна кодировка как минимум UTF-8, а многие программы и языковые файлы на этой кодировке не пишутся. И если EXE-программа имеет языковой файл, и кодировку этого языкового файла изменить на UTF-8, то программа показывает текст непонятными символами. Это первая проблема, можно ли как-то решить такие проблемы?
Вторая проблема - когда перевод находится уже внутри EXE-программы, а программа не кодирована на UTF-8 (кодированные на UTF-8 программы без проблем перевожу на HEX-редакторе).

Apple снизила в России цены на iPad и MacBook
2015-04-22 14:35

Apple снизила в России примерно на 10 процентов стоимость на ряд своих продуктов, включая планшеты iPad и ноутбуки MacBook. Так, iPad Air 2 с Wi-Fi и памятью в 16 гигабайт можно купить за 33 490 рублей (вместо 37 490 рублей), а iPad Mini 3 с Wi-Fi и 16 гигабайтами — за 26 990 рублей (вместо 29 990 рублей).



LG сделал ставку на замещение палок для селфи широкоугольной оптикой
2015-04-22 14:36

Инженеры LG рассчитывают, что использование широкоугольных камер в смартфонах сделает ненужными палки для селфи. Широкоугольные камеры позволяют увеличить площадь кадра на 15 процентов: достаточно, чтобы разместить на одном снимке больше друзей или достопримечательности на заднем плане.



Работа для javascript/coffescript программиста
2015-04-22 17:44 Surfer
Нужен человек способный поддерживать и дорабатывать (или доработать одноразово) проект написанный на javascript\coffescript, платформа meteor
Сайт связанный со Steam api, посвящен играм на деньги и покупке-продаже внутриигровых вещей. Большая часть работы уже выполнена, от вас требуется доработка и оптимизация.
Цена договорная.
Скайп: neytral_ (Валерий Брюсуиллиус)
Вк: https://vk.com/surferdude

itCOM-2015
2015-04-23 16:16

Выставочная компания «Красноярская ярмарка» совместно с

Управлением информатизации и связи администрации г. Красноярска при поддержке

Правительства Красноярского края приглашает вас принять участие в выставке-форуме «itCOM-2015».

itCOM-2015

 

В настоящее время растет интерес к городу и региону, планируется интенсивное строительство, развитие экономики, увеличение числа рабочих мест и рост количества жителей. В этих условиях резко возрастает спрос на современные услуги связи, телекоммуникационные и информационные технологии. Все эти факторы определяют актуальность и популярность выставки «Информационные технологии. Телекоммуникации». В рамках выставки подготовлена деловая программа — семинары и дискуссии, презентация нового оборудования, студенческая площадка, переговоры. Программа выставки позволит не только ознакомиться с новыми решениями в IT-отрасли и теле- и радиокоммуникации, но и обсудить актуальные вопросы с коллегами, обменяться накопленным опытом, установить деловые контакты.

 

Основные тематические разделы выставки

ТЕЛЕКОММУНИКАЦИИ ДЛЯ БИЗНЕСА

  • Сети
  • Оборудование и системы связи IT-систем и оборудования для: корпоративных клиентов, предприятий, среднего и малого бизнеса.
  • Телерадиовещательная техника.
  • Телевизионные системы, оборудование видеоконференций, удаленного видеоконтроля и мониторинга объектов.
  • Телекоммуникационные технологии
  • Системы и средства оповещения, мониторинга, поиска и спасения в чрезвычайных ситуациях.
  • Системы и средства IP-телефонии.
  • Системы и средства спутниковой, радиорелейной и оптической связи.
  • Кабели связи и антенны. Волоконно-оптические линии (ВОЛС).
  • Спутниковая связь. VSAT.
  • Телекоммуникационные системы.
  • Сетевые компоненты и обеспечение
  • Метрология, контрольно-измерительное и испытательное оборудование в области телекоммуникационных технологий. Сертификация оборудования.
  • Системы дистанционного контроля и сбора информации. Системы мониторинга.
  • Традиционные и альтернативные источники и системы бесперебойного электропитания.
  • Материалы, технологии в технике связи.

 

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ ДЛЯ БИЗНЕСА

  • Приложения и Сервисы
  • SaaS, «облачные» приложения, Виртуализация.
  • IT-услуги, системная интеграция, IT-аутсорсинг, IT-консалтинг.
  • Сетевые решения.
  • Электронный документооборот.
  • Электронное правительство.
  • Система оперативного управления компанией.
  • Технологии мобильного позиционирования.
  • Мобильные и беспроводные сети связи общего и корпоративного пользования.
  • Комплексные системы автоматизации управления инфраструктурой предприятия, города, региона.
  • Технологии дистанционного обучения и подготовки кадров.
  • Информационные системы, программные продукты
  • Автоматизация бизнеса
  • Системы защиты информации и управления данными
  • Системы и средства защиты информации и персональных данных.
  • Антивирусная защита.
  • Управление данными и хранение информации.
  • Сетевые компоненты и обеспечение
  • Метрология, контрольно-измерительное и испытательное оборудование в области телекоммуникационных технологий. Сертификация оборудования.
  • Системы энергосбережения, дистанционного контроля и сбора информации. Системы мониторинга.
  • Традиционные и альтернативные источники и системы бесперебойного электропитания.
  • Материалы, технологии в технике связи.

 

IT И ТЕЛЕКОММУНИКАЦИИ ДЛЯ ДОМА И ОТДЫХА

  • Мобильные и интернет технологии
  • Услуги операторов связи
  • Средства связи. Пользовательские устройства
  • Контент. Медиа. Развлечения

 

Организатор – ВК «Красноярская ярмарка».

Соорганизатор – Управление информатизации и связи администрации г. Красноярска.

Официальная поддержка – Правительство Красноярского края.


Дирекция:
Ольга Богданова – директор выставки
Анастасия Исаченко, Анна Гафитулина – менеджеры выставки
тел./факс: (391) 22-88-400, 22-88-613
(391) 22-88-611 – круглосуточно
itCOM@krasfair.ru



RE: Timer
2015-04-23 22:28 i32
Подгрузил через консоль..
install-package Microsoft.Bcl.Async –pre
заработала в таком варианте.
 Dim response As HttpResponseMessage = client.PostAsync(New Uri("http://mssimple_mail.php"), content).Result


RE: Timer
2015-04-24 16:06 Алексей Немиро
Да, Await оказывается только в .NET 4.5 стал доступен. А для 4.0 придется библиотеку Microsoft.Bcl.Async устанавливать, либо писать чуть больше кода.

Save in VB.NET
2015-04-28 12:40 rusiko
Привет всем. Есть небольшая проблемка. Помогите пожалуйста. До этого, когда писал программы, пользовался мастером. Но заметил что процедуры работают намного быстрее и поэтому решил воспользоваться ими. Но вот не знаю как при этом сохранять данные в datagrid. Программа написана на VB.NET, а БД на SQL Server. Написал следущюю процедуру на sql, вызываю процедуру при каждом нажатии на кнопку.

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
DataGridView1.Visible = True
Dim connetionString As String
Dim connection As SqlConnection
Dim adapter As SqlDataAdapter
Dim command As New SqlCommand
Dim ds As New DataSet
connetionString = "Data Source=.;Initial Catalog=SirDB;User ID=sa;Password=123456"
connection = New SqlConnection(connetionString)
connection.Open()
command.Connection = connection
command.CommandType = CommandType.StoredProcedure
command.CommandText = "Phones"
adapter = New SqlDataAdapter(command)
adapter.Fill(ds)
Dim dt As New DataTable
adapter.Fill(dt)
DataGridView1.DataSource = dt
connection.Close()
End Sub
В данном случае при нажатии на кнопку вызывается процедура и загружаются данные из таблицы PhoneTable. И этот код вставил для click-а каждой кнопки, поменяв только название процедуры. Первая проблема: Можно ли как-то упростить этот код, чтобы не писать один и тот же код много раз. Ведь меняется там всего лишь название процедуры. А следующий код написал для сохранения данных:

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DataGridView1.AllowUserToAddRows = True
DataGridView1.AllowUserToDeleteRows = True
Dim cn As SqlConnection = New SqlConnection("Data Source=.;Initial Catalog=SirDB;User ID=sa;Password=123456")
adapter = New SqlDataAdapter("select PhoneID, FirstName, [Address], City, Phone, Phone_2, Others from PhoneTable", cn)
Dim builder As New SqlCommandBuilder(adapter)
adapter.InsertCommand = builder.GetInsertCommand()
adapter.UpdateCommand = builder.GetUpdateCommand()
adapter.DeleteCommand = builder.GetDeleteCommand()
dt = New DataTable()
adapter.Fill(dt)
DataGridView1.DataSource = dt
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
adapter.Update(dt)
MessageBox.Show("Saved successfully")
Catch ex As Exception
MessageBox.Show("Error updating database")
End Try
End Sub
Никаких ошибок не вылетает, но данные не сохранятся. Как могу сохранить данные. Спасибо заранее.

Save in VB.NET
2015-04-28 12:40 rusiko
Привет всем. Есть небольшая проблемка. Помогите пожалуйста. До этого, когда писал программы, пользовался мастером. Но заметил что процедуры работают намного быстрее и поэтому решил воспользоваться ими. Но вот не знаю как при этом сохранять данные в datagrid. Программа написана на VB.NET, а БД на SQL Server. Написал следущюю процедуру на sql, вызываю процедуру при каждом нажатии на кнопку.

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        DataGridView1.Visible = True
        Dim connetionString As String
        Dim connection As SqlConnection
        Dim adapter As SqlDataAdapter
        Dim command As New SqlCommand
        Dim ds As New DataSet
        connetionString = "Data Source=.;Initial Catalog=SirDB;User ID=sa;Password=123456"
        connection = New SqlConnection(connetionString)
        connection.Open()
        command.Connection = connection
        command.CommandType = CommandType.StoredProcedure
        command.CommandText = "Phones"
        adapter = New SqlDataAdapter(command)
        adapter.Fill(ds)
        Dim dt As New DataTable
        adapter.Fill(dt)
        DataGridView1.DataSource = dt
        connection.Close()
    End Sub
В данном случае при нажатии на кнопку вызывается процедура и загружаются данные из таблицы PhoneTable. И этот код вставил для click-а каждой кнопки, поменяв только название процедуры. Первая проблема: Можно ли как-то упростить этот код, чтобы не писать один и тот же код много раз. Ведь меняется там всего лишь название процедуры. А следующий код написал для сохранения данных:

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DataGridView1.AllowUserToAddRows = True
        DataGridView1.AllowUserToDeleteRows = True
        Dim cn As SqlConnection = New SqlConnection("Data Source=.;Initial Catalog=SirDB;User ID=sa;Password=123456")
        adapter = New SqlDataAdapter("select PhoneID, FirstName, [Address], City, Phone, Phone_2, Others  from PhoneTable", cn)
        Dim builder As New SqlCommandBuilder(adapter)
        adapter.InsertCommand = builder.GetInsertCommand()
        adapter.UpdateCommand = builder.GetUpdateCommand()
        adapter.DeleteCommand = builder.GetDeleteCommand()
        dt = New DataTable()
        adapter.Fill(dt)
        DataGridView1.DataSource = dt
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            adapter.Update(dt)
            MessageBox.Show("Saved successfully")
        Catch ex As Exception
            MessageBox.Show("Error updating database")
        End Try
    End Sub
Никаких ошибок не вылетает, но данные не сохранятся. Как могу сохранить данные. Спасибо заранее.

Nokia опровергла слухи о возвращении на рынок телефонов
2015-04-28 15:23

Финская Nokia опровергла слухи, появившиеся на прошлой неделе, о том, что производитель планирует вернуться на рынок телефонов. Ранее появились сообщения, что финская компания планирует вернуться на рынок телефонов уже в 2016 году. По информации источников, инициатором подобных планов стало подразделение производителя — Nokia Technologies.



Google объяснила появление на ее картах неприличной в отношении Apple «пасхалки»
2015-04-28 15:23

Компания Google объяснила появление на своих картах изображения логотипа Android (робот), справляющего малую нужду на значок Apple (надкушенное яблоко), использованием стандартного приложения Map Maker. Оно позволяет добровольцам самим составлять карты и добавлять их к фирменным.



RE: Save in VB.NET
2015-04-28 15:55 Алексей Немиро
Можно ли как-то упростить этот код, чтобы не писать один и тот же код много раз. Ведь меняется там всего лишь название процедуры.
Конечно можно, и даже нужно.

У меня бы этот код, с моими вспомогательными классами, сейчас выглядел бы так:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  DataGridView1.Visible = True
  Using client As Nemiro.Data.Sql.SqlClient() 'строка соединения с базой автоматически берется из файла конфигурации
    client.CommandText = "Phones"
    DataGridView1.DataSource = client.GetTable()
  End Using
End Sub

Сейчас это уже не отдельные классы, а библиотека.

Исходный код библиотеки на данный момент закрыт.

Она хороша для получения DataSet, DataTable, DataRow и выполнения простых запросов.
Тип CommandText определяется автоматически, нет необходимости указывать, что это хранимая процедура или обычный запрос SQL.
Класс Nemiro.Data.Sql.SqlClient совмещает в себе SqlConnection и SqlCommand.
Есть встроенные механизмы кэширования данных, без чего в веб невозможно прожить.

Мне эта версия не нравится, но все мои и рабочие проекты используют эту библиотеку. Имя класса SqlClient неудачно выбрано, особенно заметно в VB.NET, где умная Visual Studio предлагает неправильные решения конфликтов :) (если путь к классу писать в сокращенном виде - SqlClient, то наверняка студия предложит импортировать System.Data.SqlClient) Но больше всего не нравится реализация ORM, для текущих проектов это не очень удобно (проекты сложные и требуют немного иных решений, чем те, которые предлагает библиотека Nemiro.Data).

Kbyte.Ru живет на самой первой версии. FoxTools.Ru, в особенности новый API использует последнюю версию.
Никаких ошибок не вылетает, но данные не сохранятся. Как могу сохранить данные.
Видимо запросы не прописаны в builder, либо неправильные.

Моя библиотека больше под web адаптирована. Элементы типа DataGridView я не использую, слишком много ресурсов потребляют (автоматизация; если делать все руками, то в принципе можно).
С Nemiro.Data пришлось бы циклом перебирать и сохранять каждую запись. Либо использовать ORM, но придется для коллекций писать код руками, по сути тоже с циклами. В прочем, массовое сохранение данных на практике я бы вряд ли стал использовать. Скорее предпочел бы сохранять сразу после изменения, либо сделал бы отдельную форму для редактирования отдельных записей и там сохранял. Последний вариант более удобен, в плане того, что не нужно выводить все данных в DataGridView, а только основные и форму редактирования проще сделать удобной для пользователя, т.к. по сути нет никаких ограничений (например, можно разделить данные на группы при помощи TabStrip, сделать проверку данных и т.п).

Установка через NuGet:

PM> Install-Package Nemiro.Data

Есть справочник на русском языке:
http://data.nemiro.net/guide/ru/

Вот страница описания основного класса:
http://data.nemiro.net/guide/ru/?topic=html/7f05f17d-32a3-a336-1b90-a70c54450331.htm

PS: Я уже потихоньку обдумываю новую версию. Исходный код скорее всего будет открыт. Реализация, как и текущей версии, будет на C#. А вот документация на русском наверное не осилю :)

Новый веб-браузер от Microsoft получил название Edge
2015-04-30 13:17

Microsoft представила новый браузер Edge для платформы Windows 10. Среди нововведений — возможность делать заметки на веб-страниц и делиться ею уже с комментариями, новый режим чтения, форматирующий страницы в digital-«журнал», чтение страниц в режиме офлайн, интеграция с голосовым помощником Cortana.



LG представила «кожаный» флагман G4
2015-04-30 13:18

Южнокорейская LG анонсировала свой новый флагманский смартфон G4. Презентация состоялась одновременно в Нью-Йорке, Лондоне, Париже, Сеуле, Сингапуре и Стамбуле. По дизайну новая модель напоминает предыдущий флагман — G3. Главным внешним отличием нового гаджета стало решение производителя сделать задний корпус из кожи.



Обладатели татуировок пожаловались на некорректную работу Apple Watch
2015-04-30 13:18

Apple Watch некорректно работают на татуированных запястьях — часы блокируются, прерывают процесс тренировки и показывают невозможные значения при попытках измерить пульс. Чаще всего о проблемах сообщают обладатели татуировок, выполненных в ярких черных или красных цветах.



RE: Загрузка файла HTTP на C#
2015-04-30 21:03 andrushko.k
Всем привет. У меня вопрос по данной теме. Помогите. Создал программу на WPF для публикации объявлений на сайте. На сайте использую Osclass шаблон olxx.
В программе формирую POST запрос, а в ответ получаю главную страницу сайта, соответственно новое объявление не добавляется. Помогите!!! Уже не знаю что делать =(

Код С#. При нажатии на кнопку.
  HttpWebRequest requestToServerEndpoint =
                (HttpWebRequest)WebRequest.Create("http://myhost.com/index.php");
 
            string boundaryString = "----WebKitFormBoundaryVcYAfPbj8Cn0vuMV";
            string fileUrl = @"C:\SomeRandomFile.pdf";
            requestToServerEndpoint.Method = WebRequestMethods.Http.Post;
            requestToServerEndpoint.ContentType = "multipart/form-data; boundary=" + boundaryString;
            requestToServerEndpoint.KeepAlive = true;
            requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;
            requestToServerEndpoint.Referer = "http://myhost.com/index.php?page=item&action=item_add";
            requestToServerEndpoint.Host = "myhost.com";
 
            // Use a MemoryStream to form the post data request,
            // so that we can get the content-length attribute.
            MemoryStream postDataStream = new MemoryStream();
            StreamWriter postDataWriter = new StreamWriter(postDataStream);
 
            // Include value from the myFileDescription text area in the post data
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
                                    "CSRFName",
                                    "CSRF422030255_1740355879");
 
 
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
                                    "CSRFToken",
                                    "bc24588a2b5e3833c425773a4d0b370c2ce31773ab3b6270aacd2d1b969d174e5088f40bf9b325de6eda8b48e00623f64cb9d8d598529e82461f02374d05b50e");
 
           
                                   
 
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
                                    "action",
                                    "item_add_post");
 
 
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
                                   "page",
                                   "item");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
                       "title[cs_CZ]",
                       "Test2");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
                       "catId",
                       "351");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
           "description[cs_CZ]",
           "testing");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
         "price",
         "0");
 
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
        "currency",
        "CZK");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
       "countryId",
       "CZ");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
       "regionId",
       "782662");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
       "cityId",
       "501397");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            postDataWriter.Write("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}",
      "contactEmail",
      "andrushko.k@gmail.com");
            postDataWriter.Write("\r\n" + boundaryString + "\r\n");
            // Include the file in the post data
            //postDataWriter.Write("\r\n--" + boundaryString + "\r\n");
            //postDataWriter.Write("Content-Disposition: form-data;"
            //                        + "name=\"{0}\";"
            //                        + "filename=\"{1}\""
            //                        + "\r\nContent-Type: {2}\r\n\r\n",
            //                        "myFile",
            //                        System.IO.Path.GetFileName(fileUrl),
            //                        System.IO.Path.GetExtension(fileUrl));
            postDataWriter.Flush();
 
            // Read the file
            //FileStream fileStream = new FileStream(fileUrl, FileMode.Open, FileAccess.Read);
            //byte[] buffer = new byte[1024];
            //int bytesRead = 0;
            //while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
            //{
            //    postDataStream.Write(buffer, 0, bytesRead);
            //}
            //fileStream.Close();
 
            //postDataWriter.Write("\r\n--" + boundaryString + "--\r\n");
            //postDataWriter.Flush();
 
            // Set the http request body content length
            requestToServerEndpoint.ContentLength = postDataStream.Length;
 
            // Dump the post data from the memory stream to the request stream
            using (Stream s = requestToServerEndpoint.GetRequestStream())
            {
                postDataStream.WriteTo(s);
            }
            postDataStream.Close();
 
            WebResponse response = requestToServerEndpoint.GetResponse();
            StreamReader responseReader = new StreamReader(response.GetResponseStream());
            string replyFromServer = responseReader.ReadToEnd();
           // MessageBox.Show(replyFromServer);
            ResultText.Text = replyFromServer;
Для "отлова" запросов использую Fiddler
Захожу на сайт, заполняю поля вручную, нажимаю кнопку добавления, отловил запрос:
POST http://myhost.com/index.php HTTP/1.1
Host: myhost.com
Connection: keep-alive
Content-Length: 2034
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://myhost.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Referer: http://myhost.com/index.php?page=item&action=item_add
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: osclass=sr3a627lj7bqc7gtmoum2etm71; a1f85=last_submit_item%261430317688
 
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="CSRFName"
 
CSRF422030255_1740355879
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="CSRFToken"
 
bc24588a2b5e3833c425773a4d0b370c2ce31773ab3b6270aacd2d1b969d174e5088f40bf9b325de6eda8b48e00623f64cb9d8d598529e82461f02374d05b50e
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="action"
 
item_add_post
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="page"
 
item
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="title[cs_CZ]"
 
Test
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="catId"
 
351
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="description[cs_CZ]"
 
test
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="price"
 
0
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="currency"
 
CZK
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="qqfile"; filename=""
Content-Type: application/octet-stream
 
 
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="countryId"
 
CZ
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="regionId"
 
782662
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="cityId"
 
501397
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="address"
 
 
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="cityArea"
 
 
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="cityAreaId"
 
 
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="contactName"
 
 
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="contactEmail"
 
andrushko.k@gmail.com
------WebKitFormBoundaryVcYAfPbj8Cn0vuMV--
В результате работы объявление добавляется. Затем запускаю свою программу, нажимаю на кнопку добавления, отловил запрос:
POST http://myhost.com/index.php HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Referer: http://myhost.com/index.php?page=item&action=item_add
Host: myhost.com
Content-Length: 1480
Expect: 100-continue
Connection: Keep-Alive
 
 
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="CSRFName"
 
CSRF422030255_1740355879
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="CSRFToken"
 
bc24588a2b5e3833c425773a4d0b370c2ce31773ab3b6270aacd2d1b969d174e5088f40bf9b325de6eda8b48e00623f64cb9d8d598529e82461f02374d05b50e
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="action"
 
item_add_post
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="page"
 
item
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="title[cs_CZ]"
 
Test2
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="catId"
 
351
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="description[cs_CZ]"
 
testing
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="price"
 
0
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="currency"
 
CZK
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="countryId"
 
CZ
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="regionId"
 
782662
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="cityId"
 
501397
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Content-Disposition: form-data; name="contactEmail"
 
andrushko.k@gmail.com
----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Результат: ResultText.Text хранит в себе HTML код главной страницы. На сайт объявление не добавляется =(. В чем может быть проблема, помогите.

RE: Загрузка файла HTTP на C#
2015-04-30 21:32 Алексей Немиро
Как минимум, Cookies нет.

RE: Загрузка файла HTTP на C#
2015-04-30 22:40 andrushko.k
Спасибо. Я создал поле, с типом данных CookieContainer, в своем классе.

затем при формировании запроса добавляю cookies
requestToServerEndpoint.CookieContainer = cookies;

Потом в самом конце(после получения ответа) обновляю cookies

 cookies = requestToServerEndpoint.CookieContainer;

Теперь первый запрос, как был, так и остался, а во втором появилась строчка cookies

POST http://myhost.com/index.php HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryVcYAfPbj8Cn0vuMV
Referer: http://myhost.com/index.php?page=item&action=item_add
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
Host: myhost.com
Cookie: osclass=2imt0k6habmlj0eqjvc940tsl0
Content-Length: 1642
Expect: 100-continue

Но на сайте ничего не появилось

RE: Загрузка файла HTTP на C#
2015-04-30 23:27 Алексей Немиро
CSRFToken - наверняка элемент защиты. Должен быть динамичным, чтобы от защиты был толк.

CSRF - Сross Site Request Forgery

Нужно изучить механизм защиты и повторить все на своей стороне.

Либо при заходе на страницу добавления данных будут ключи в скрытых полях. Либо ключи формируются на стороне JavaScript. Или все сразу.

RE: Загрузка файла HTTP на C#
2015-05-01 13:13 andrushko.k
Большое спасибо. Уже более понятно.
В общем ситуация такая:
Я все запросы отлавливал с одного и того же браузера. CSRFToken и CSRFUser никогда не менялся.
Когда вы сказали обратить внимание, я попробовал другой браузер там уже были другие показатели. Затем проверив ответ, который приходит в мою программу, я обнаружил что CSRFToken и CSRFUser генерируються каждый раз новые. Они хранятся в скрытых полях формы. Подскажите как мне их отловить? Или обязательно искать алгоритм генерации? И если искать то где?

«Яндекс» объявил войну мошенническим сайтам
2015-05-01 16:35

Поисковик «Яндекс» с 30 апреля предупредил владельцев сайтов, обманным путем заставляющих пользователей подписаться на платные услуги, о введении алгоритма, который будет ранжировать их ниже. Нововведение вступит в силу в ближайший месяц направлено в первую очередь на пользующихся поисковиком через мобильный интернет.



Microsoft позволит перенести на Windows 10 программы для Android и iOS
2015-05-01 16:35

Microsoft анонсировала новые способы запуска приложений для платформы Windows 10. С помощью новых инструментов разработчики могут с небольшими доработками использовать уже имеющийся код Android или iOS-приложения для создания программы на Windows 10 и распространять приложения через Windows Store.



Load data problem
2015-05-01 20:14 rusiko
Привет всем. Нужна ваша помощь. Есть у меня небольшая программка, все вроде нормально работает, но вот когда хочу подключить вторую таблицу, стобцы меняются местами. Поясню: Есть пустой datagrid и несколько таблиц в БД SQL. Когда загружаю какую-то таблицу, все нормально функционирует. Но вот когда подключаю вторую таблицу, она тоже вроде загружается, но при ее отображении столбцы выводяться не в том порядке, в котором они собраны в БД и в котором загружаю в программу. То есть если к примеру первым идет ("имя пользователя", "Адрес", "Телефон"), при отображении Адрес и телефон меняються местами. И еще: помогите пожалуйста еще с одной проблеммой. Я хочу использовать один datagrid для всех таблиц. Как мне правильно это сделать? Спасибо вам большое. программку и БД загрузил в случай, если не смог точно выразить свой вопрос!!!

RE: Load data problem
2015-05-01 21:07 Алексей Немиро
...но при ее отображении столбцы выводятся не в том порядке, в котором они собраны в БД
With cmd
  .Connection = cn
  .CommandText = "SELECT PhoneID, FirstName, [Address],City, Phone,Phone_2, Others FROM PhoneTable"
End With
В каком порядке поля указаны в CommandText, в таком они и будут в выдаче.
Т.е. в данном случае, порядок будет таким:
PhoneID, FirstName, [Address], City, Phone, Phone_2, Others
Я хочу использовать один datagrid для всех таблиц. Как мне правильно это сделать?
Просто загружать в один DataGridView отдельные таблицы (в DataSource). По идее проблем с этим быть не должно.

Если нужно одновременно иметь данные из разных таблиц, то можно использовать инструкцию JOIN:
SELECT 
PhoneTable.PhoneID, PhoneTable.FirstName, PhoneTable.[Address], 
PhoneTable.City, PhoneTable.Phone, PhoneTable.Phone_2, PhoneTable.Others,
[другая таблица].[поле другой таблицы], [другая таблица].[еще одно поле другой таблицы] 
FROM PhoneTable INNER JOIN [другая таблица] ON [другая таблица].PhoneID = PhoneTable.PhoneID


Получение доступа к сетевой папке с помощью Имя и пароля
2015-05-02 12:17 InOutEEs
Здравствуйте, напишите пожалуйста как получить, доступ с вызовом окна Имя пользователя к примеру
W:\\domain\edu\user1 - Это имя пользователя расположенного на сет. диске с правами Админа.
А это папка F:\\folder\уроки - так вот, надо к ней получить доступ с правами другого пользователя, который имеет доступ к этой папке с запросом пароля и имени его из домена.


Заранее благодарю!

В избранное