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

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


Выпуск # 665

Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


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

Читайте в этом выпуске:

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

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

Всем привет.
Столкнулся с проблемой "лишних" данных в таблице БД.
Привязываю SQLdataSource к своему GridView, вытягиваю в текстБокс данные из ячейки.
Наблюдаю следующую картину:
если ячейка пустая, то текстБокс отображает  
если ячейка nvarchar(20), то "лишних" пробелов нет (Отчество, например)
если ячейка nchar(250), то после текста полно "лишних" пробелов (Email, например)

Пытался программно перед отображением данных в текстБоксе использовать Trim(), но это не помогает. Наличие пробелов в текстБоксах не позволяет проходить их валидацию.
1. Как убрать из базы  ?
2. Как "обрезать" пробелы в базе(или текстБоксах)?

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 24.11.2011 12:25
В данном случае, лучше не использовать типа данных типа (n)char, т.к. это строка фиксированной длины, в отличие от (n)varchar.
Char полезно использовать для данных фиксированной длины, когда точно известно, что данные будут занимать строго определенное количества символов. Например, поле типа char можно использовать для хранения номеров мобильных телефонов (11 символов - 7 111 2223334).

Для имен, фамилий, mail-ов и т.п. лучше использовать (n)varchar. Рекомендую изменить тип данных ячеек, а лишние пробелы убрать из таблиц тримингом, примерно таким SQL-запросом:
update table1 set field = LTRIM(RTRIM(field))
-- table1 - имя таблицы
-- field - имя поля, можно указать несколько полей через запятую
-- update table1 set field1 = LTRIM(RTRIM(field1)), field2 = LTRIM(RTRIM(field2)), field3 = LTRIM(RTRIM(field3))
-- главное не забыть сделать бекап данных, если они важные :)

Если в базу записались  , то можно использовать функцию Replace:
update table1 set field = REPLACE(field, ' ', ' ')
--update table1 set field = LTRIM(RTRIM(REPLACE(field, ' ', ' '))) -- +триминг, на всякий случай :)

Аналогично, функцию Replace можно использовать и в ASP .NET, для очистки TextBox-ов, но лучше это сделать один раз в базе.

[- к содержанию -]

Добавить свой ответ в эту тему
Еще вопрос.
Делаю проект записной книжки под веб. У меня есть GridView, который тянет данные из SQLDataSource(из представления).
Я решил отображать на экране слева текстБоксы с подробностями по каждому контакту (как в DetailsView), а справа от них размещаю GridView. При выборе строки в таблице я заношу все данные этой строки в соответствуюшие текстБоксы. Также разместил на странице кнопки для создания новой записи и редактирования существующей. Присвоил им обработчики событий, в которых задаю всем текстБоксам свойство Enabled = true.
К каждому текстБоксу я подставил свой валидатор.
Все работает замечательно в момент ввода данных и перехода от поля к полю. Но столкнулся с проблемой, что при выборе строки в GridView и последующем нажатии на кнопку Создать или Редактировать валидатор показывает мне невалидные поля и "не пускает" в обработчик события данной кнопки.

1. Как сделать так, чтобы валидаторы работали ТОЛЬКО на этапе ввода/изменения данных пользователем?
2. В свойствах текстБокса есть параметр CausesValidation. В описании сказано, что он указывает (кому?)является ли он причиной запуска проверки. Но у меня они все стоят в false, но валидация работает. Для чего этот параметр?

Вопрос о причине возникновения невалидных полей еще будет...

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 24.11.2011 12:35
У валидаторов и кнопок есть свойство ValidationGroup. Если у кнопки и валидаторов свойство ValidationGroup имеет одинаковое значение, то при нажатии на эту кнопку будет происходить проверка данных.

Например:
<asp:TextBox
ID="TextBox1" runat="server" />

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
 Display="Dynamic" ControlToValidate="TextBox1" 
 ValidationGroup="group1"
 ErrorMessage="<br />Необходимо указать значение для поля TextBox1."
/>

<br /><br />

<asp:Button ID="Button1" runat="server" ValidationGroup="group1" Text="При нажатии на эту кнопку будет проводиться проверка заполнения TextBox1" />

<br /><br />

<asp:Button ID="Button2" runat="server" Text="При нажатии на эту кнопку проверка заполнения TextBox1 проводиться не будет" />

[- к содержанию -]

Добавить свой ответ в эту тему
Всем привет.
Делаю проект записной книжки под веб. У меня есть GridView, который тянет данные из SQLDataSource(из представления).
Я решил отображать на экране слева текстБоксы с подробностями по каждому контакту (как в DetailsView), а справа от них размещаю GridView. Ненужные мне колонки я убрал из GridView, но некоторые мне нужны в деталях слева. Но, к сожалению, я не могу получить к ним доступ.
Например, поле Адрес мне нужно в GridView, но необходимо в деталях.
1. Как получить доступ к полям GridView c параметром Visible = false или даже удаленным из GridView?

[- к содержанию -]

Доброго времени суток, люди добрые.

Есть вопрос: моя программа использует определённый шрифт для контрола.
Можно ли этот шрифт в ресурсы засунуть?
Ну чтобы при работе с проектом на другом компе или при установке окончательной версии этот шрифт был в наличии на конечном компе?

Добавлял файл шрифта в My.Resources через свойства проекта (добавить файл),
но тогда при указании DIM CompFont As Font = My.Resources.CompFont_ Барсик меня не понимает...

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 21.11.2011 13:28
DIM CompFont As Font = My.Resources.CompFont
Font - это класс.
My.Resources.CompFont - это массив байт.

Вот пример рисования текста шрифтом из ресурсов (проект во вложении):
Public Class Form1

 Private fc As New PrivateFontCollection()
 Private f As Font

 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
 'грузим шрифт в память
 Dim buffer() As Byte = My.Resources.CompFont_
 Dim ip As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(GetType(Byte)) * buffer.Length)
 Marshal.Copy(buffer, 0, ip, buffer.Length)

 fc.AddMemoryFont(ip, buffer.Length)
 f = New Font(fc.Families(0), 48, FontStyle.Bold, GraphicsUnit.Pixel)

 'очищаем память
 Marshal.FreeHGlobal(ip)
 End Sub

 Private Sub Form1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
 'рисумем текст с использованием шрифта из ресурсов
 e.Graphics.DrawString("Kbyte.Ru", f, Brushes.Black, New PointF(0, 0))
 End Sub

End Class

На контролах просто так работать не будет. Чтобы использовать шрифт из памяти для контрола нужно установить свойство UseCompatibleTextRendering = True (см. например Label, Button). У TextBox-ов такого свойства нет.

[- к содержанию -]

Ответ #2 @Сергей 21.11.2011 16:26
Уважаемый, спасибо
Я собсно через графику и рисую текстом на PictureBox (в моём случае)
Поизучаю PrivateFontCollection()

[- к содержанию -]

Ответ #3 @Aleksey Nemiro 22.11.2011 12:34
Только сейчас заметил, файл примера не тот прикрутил, слова Form и Font так похожи
В этом сообщении файл примера правильный.

[- к содержанию -]

Добавить свой ответ в эту тему
Пишу Контрол, осуществляющий фильтрацию Injection. Пришла в голову мысль осуществлять принудительный сброс Кэша, если осуществляется попытка XSS - Injection. Какие операции нужно проделать, чтобы достичь желаемого результата? Спасибо.

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 19.11.2011 12:27
HttpResponse.RemoveOutputCacheItem("виртуальный
абсолютный путь к странице");

[- к содержанию -]

Добавить свой ответ в эту тему

Все темы и обсуждения

Вакансии в IT

РHP программист

Россия, Москва | Работа в офисе | 55 000.00 RUB

Разработчик E-Learning

Россия, Москва | Работа в офисе | 40 000.00 RUB

Программист C++

Россия, Москва | Работа в офисе | 50 000.00 RUB

Программист С/С++

Россия, Москва | Работа в офисе | 90 000.00 RUB

Тестировщик моделей аппаратуры / Программист на C++

Россия, Москва | Работа в офисе | 50 000.00 RUB

Программист БД Access с навыками системного администрирования

Россия, Москва | Работа в офисе | 40 000.00 RUB

Программист ArtCam

Россия, Москва | Работа в офисе | 50 000.00 RUB

Программист

Россия, Москва | Работа в офисе | 100 000.00 RUB

WEB-программист

Россия, Москва | Работа в офисе | 70 000.00 RUB

Веб-программист на проект (собственная разработка компании)

Россия, Москва | Работа в офисе | 50 000.00 RUB

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

В Кембридже создан компьютер за 25 долларов

Группа инженеров из Кембриджа разработала рабочий прототип компьютера за 25 долларов, размеры которого не превышают пачки сигарет. При своей низкой цене и малых размерах, новинка обладает аппаратной мощностью, достаточной для работы с полномасштабными приложениями, HD-видео, дисками Blu-ray и прочими мультимедиа-данными. Новый мини-компьютер получил название Raspberry Pi.

По словам Роберта Муллинса, со-основателя проекта и профессора Кембриджского университета, их разработка, прежде всего, ориентирована на детей младшего школьного возраста, которые хотели бы начать изучать компьютерные науки и в будущем постичь программирование. 

"Мы хотели создать нечто пригодное как для развлечения школьников, так и для их обучения. Нечто дешевое и полезное. Полученный компьютер стоит всего 25 долларов, поэтому купить его может практически любой, а его размеры без труда позволяют разместить его в кармане рубашки или брюк", - говорит Муллинис.

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

24.11.2011 12:05 · Категория: Безопасность · Источник: CyberSecurity.ru

[- к содержанию -]

Акции Groupon упали ниже уровня IPO

Акции интернет-компании Groupon сегодня на торгах в Нью-Йорке опустились ниже их цены размещения несколько недель назад, таким образом, сейчас крупнейший скидочный агрегатор стоит меньше, чем он был оценен во время IPO. С начала торгов акции Groupon показали рост, однако затем просели в цене на 31%. Если размещение Groupon прошло по 20 долларов за акцию, то сегодня трейдеры в Нью-Йорке соглашались покупать эти бумаги только по 17,04 доллара.

Несмотря на то, что IPO Groupon стало крупнейшим в ИТ-секторе США с момента выхода на биржу Google, многие инвесторы еще до листинга Groupon предупреждали о том, что бумаги этой компании - это рискованный актив.

По словам экспертов, Groupon ощутимо падает уже второй день подряд из-за серьезных опасений рынка, связанных со снижающейся прибылью и маржей компании, а также из-за обостряющейся конкуренции с Amazon.com и LivingSocial.com. Кроме того, многие инвесторы начали рассматривать ценные бумаги компании Groupon, как объект для коротких сделок, что повышает "ценовые качели" этих бумаг и делает их более рискованным активом.

Американские инвесторы говорят, что до недавнего времени так называемые "шорты" или короткие продажи по акциям ИТ-компаний не слишком практиковались, тогда как сейчас они начинают входить в моду и это, определенно, не идет на пользу компаниям, бумаги которых все больше подвержены ценовым колебаниям и инвесторы рассматривают их лишь как объект для спекуляций, а не для долговременного вложения денег.

24.11.2011 12:05 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

[- к содержанию -]

В России обнаружена новая версия банковского троянца Carberp

Cпециалисты российского Центра вирусных исследований и аналитики компании Eset обнаружили новую модификацию троянской программы Carberp, которая нацелена на популярные системы дистанционного банковского обслуживания (ДБО).

На сегодняшний день Россия – абсолютный лидер по количеству инцидентов в области информационной безопасности с использованием банковского трояна Carberp – 72% от общего количества инцидентов в различных странах. Пострадавшими от данного вредоносного ПО стали клиенты практически всех крупнейших российских банков – не только коммерческие компании, но и государственные структуры. При этом доходы киберпреступной группы Carberp исчисляются миллионами долларов еженедельно.

«Разработчики Carberp постоянно совершенствуют свою троянскую программу, щедро инвестируя финансовые средства в ее развитие, – комментирует Александр Матросов, директор Центра вирусных исследований и аналитики Eset. – Эволюция этого вредоносного ПО за два года сделала его номером один по количеству инцидентов, связанных с ДБО».

23.11.2011 10:38 · Категория: Безопасность · Источник: CyberSecurity.ru

[- к содержанию -]

Опубликован список 25 самых плохих паролей

Компания Splashdata, выпускающая программное обеспечение для управления пользовательскими паролями, сегодня опубликовала результаты своего исследования, целью которого было определение самых популярных пользовательских паролей. Splashdata выпускает программное обеспечение для Windows, Mac OS X и ряда мобильных платформ и на основании данных, полученных с согласия пользователей, разработчики опубликовали список 25 самых популярных паролей.

Разработчики программного обеспечения говорят, что их список Top-25 паролей - этот как раз тот случай, когда 25 самых популярных - это не то же самое, что 25 самых лучших. Скорее даже наоборот. В отчете Splashdata говорится, что несмотря на все предупреждения, случаи с кражами паролей и ситуациями, послужившими для появления множества анекдотов, пользователи по-прежнему продолжают использовать до предела простые пароли, открывающие доступ не только к их личным, но и финансовым данным. 

Как и в прошлом году лидером списка "25 самых плохих паролей года" стали до боли знакомые все ИТ-администраторам пароли password, 123456 и 12345678. Кроме того, Splashdata отмечает, что в последнее время пользователи вновь начали возвращаться к старой привычке использования одного и того же слова или набора как в качестве логина, так и в качестве пароля. Компания отмечает, то часто пользователи используют своим имена и фамилии в качестве логинов/паролей, что недопустимо, так как эти данные злоумышленники перебирают в первую очередь.

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

  • password
  • 123456
  • 12345678
  • qwerty
  • abc123
  • monkey
  • 1234567
  • letmein
  • trustno1
  • dragon
  • baseball
  • 111111
  • iloveyou
  • master
  • sunshine
  • ashley
  • bailey
  • passw0rd
  • shadow
  • 123123
  • 654321
  • superman
  • qazwsx
  • michael
  • football


В комментариях к исследованиям, Splashdata отмечает, что рекомендации по подбору паролей в сравнении с прошлым годом почти не изменились: пароль должен быть как минимум 8-символьный, он не должен представлять собой общеупотребительное слово или чью-либо фамилию или имя. Пароль должен быть таким, чтобы сам пользователь мог его без проблем запомнить, но стороннему человеку просто угадать его было невозможно. Еще лучше если пользователи меняют пароли, например, раз в 3-4 месяца или используют различные усиливающие системы, например системы двухфакторной авторизации.

23.11.2011 10:38 · Категория: Безопасность · Источник: CyberSecurity.ru

[- к содержанию -]

Создатель Hotmail обещает революцию в SMS

Индийский ИТ-предприниматель Сабир Бхатиа, ранее стоявший у истоков почтового сервиса Hotmail, сегодня презентовал бесплатный сервис текстовых сообщений, заявив, что новинка станет столь же революционной, как и Hotmail для своего времени. Напомним, что Бхатиа был 15 лет назад одним из со-основателей популярного почтового сервиса.

В сообщении индийского предпринимателя сказано, что новый бесплатный сервис JaxtrSMS "сделает для SMS тоже самое, что Hotmail сделал для электронной почты". Новый сервис формально сегодня был запущен на пресс-конференции в Мумбаи. Он предназначен для отправки текстовых сообщений с пользовательского мобильного телефона на любой другой мобильный телефон в мире. Изюминка состоит в том, что получатель сможет получить сообщение даже в том случае, если у него не установлено приложение JaxtrSMS.

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

Сообщается, что новое бесплатное приложение для смартфонов было полностью разработано в Индии и работает на местном рынке, а вскоре появится и за пределами Индии.

23.11.2011 10:36 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное