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

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


Выпуск # 667

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Всем доброго времени суток.Для курсовой работы необходимо создать формуляр читателя и сохранить его в формате изображения.И это желательно создать в DLL.Есть таблица readers,где столбцы код читателя,ФИО,Адрес,Телефон.Таблица accounting,где код выдачи,код читателя,фамилия читателя,автор книги,название книги,когда выдана,когда вернул и кем выдана книга.Нужно данные таблицы readers и связь с таблицей accounting как-то поместить в поле рисования и нарисовать тестовое содержание определенной строки.Например:
Код читателя:1
ФИО:Иванов И.И.
Адрес:ул.Раздолбаев,д.13,кв.12
Телефон:33-33-33
(и далее связь с табл accounting)
Код выдачи:12
Книга:букварь
Автор:Народ русский
Взял:1.11.2012
Вернул:3.12.2056

Как выбрать элементы определенной строки в tableadapter?Нарисовать их через Graphics как текст и сохранить в формате jpeg например?
Помогите или посоветуйте какую-нибудь литературу на эту тему.

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

Ответ #1 @Aleksey Nemiro 08.12.2011 11:04
Как выбрать элементы определенной строки в tableadapter?
написать запрос, который будет возвращать определенную строку данных (SELECT FROM WHERE)
Нарисовать их через Graphics как текст
Рисовать текст можно так:
using System.Drawing;
Bitmap bmp = new Bitmap(300, 300);
Graphics g = Graphics.FromImage(bmp);

FontFamily ff = new FontFamily("Times New Roman");
Font f = new Font(ff, 24);

g.DrawString("Kbyte.Ru", f, Brushes.Black, new PointF(0, 0));
сохранить
bmp.Save(@"C:\1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
в формате jpeg например
ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");
Encoder myEncoder = Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 75L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp.Save(@"C:\1.jpg", myImageCodecInfo, myEncoderParameters);
    private static ImageCodecInfo GetEncoderInfo(String mimeType)
    {
        int j;
        ImageCodecInfo[] encoders;
        encoders = ImageCodecInfo.GetImageEncoders();
        for(j = 0; j < encoders.Length; ++j)
        {
            if(encoders[j].MimeType == mimeType)
                return encoders[j];
        }
        return null;
    }
Помогите или посоветуйте какую-нибудь литературу на эту тему.
C#: Работа с графикой

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

Добавить свой ответ в эту тему
Form1 & PictureBox1 @PostTj 07.12.2011 10:14
Привет всем такая задачка...
как можно показать картинку в форме скрывая саму форму?
в рисунке что я загрузил отображается и форма и мячик (PictureBox1)



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


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 If (MyImage IsNot Nothing) Then
  MyImage.Dispose()
 End If
 PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
 MyImage = New Bitmap("D:\2.png")
 PictureBox1.Image = CType(MyImage, Image)
 End Sub

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

Ответ #1 @Aleksey Nemiro 07.12.2011 12:33
У формы есть свойство TransparencyKey которое позволяет установить прозрачный цвет. Если прозрачный цвет и цвет формы будут равны, то форма будет прозрачной. Чтобы картинка выводилась без фона, фон картинки должен быть таким же как TransparencyKey. Чтобы у формы не выводился заголовок, нужно поставить FormBorderstyle="Windows.Forms.FormBorderStyle.None"

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

Ответ #2 @PostTj 08.12.2011 14:16
Спасибо все работает вот тут можно узнать больше если комуто понадобиться
Теперь у меня другая проблемка хочу получить координаты мышь при клике в экране. Не клике в форму а другие области экрана.
Точнее задача такая: программка запускается и при нажатие мышки (левая) влюбом месте экрана (не в форме) надо сдвинут форму
типа скажем на Me.Left=0 Me.Top=0
Спасибо!

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

Ответ #3 @Aleksey Nemiro 08.12.2011 19:59
If MouseButtons = Windows.Forms.MouseButtons.Left Then
 Dim p As Point = Cursor.Position
 'p.X - позиция курсора мышки по X
 'p.Y - позиция курсора мышки по Y

  'Me.Top = p.Y
  'Me.Left = p.X

  'по центру
  'Me.Top = p.Y - (Me.Height / 2)
  'Me.Left = p.X - (Me.Width / 2)
End If

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

Добавить свой ответ в эту тему
Вопрос1: Как создать БД, используя скрипт?
Вопрос 2: Как занести в нее определенные значения? Дамп базы не допускается.
В сиквеле я еще новичок, поэтому пошел по пути поиска ответа в интернете. Нашел процедуру, которая якобы дает ответ на мой вопрос.
-- create the database if it does not already exist
if not exists(select * from sys.databases 
where name = 'MyDatabaseName')
begin
    create database MyDatabaseName
end

-- specify that all subsequent sql commands use this database
use [MyDatabaseName]

-- add UserAccount table if it does not already exist
if not exists (select * from information_schema.columns
where table_name = 'UserAccount')
begin
	create table UserAccount 
	(
		Id int identity(1000,1) not null,
		UserName nvarchar(50) not null,
		[Password] nvarchar(20) null,
		DateUpdated datetime not null,
		DateCreated datetime not null,
		
		constraint PK_UserAccount primary key (Id),
	)	
end

Но проблема в том, что при запуске скрипта выдает ошибку, что БД MyDatabaseName не существует. Ну так ясный пень, что ее нет - для этого и скрипт написан, чтобы ее создать!!! В первых строках скриптах описано условие, в котором базу нужно создать, если ее еще нет в системе. Похоже БД не создается. Что я делаю не так?

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

Ответ #1 @Edlin 07.12.2011 09:33
Просто добавь команды Go:

-- create the database if it does not already exist
if not exists(select * from sys.databases 
where name = 'MyDatabaseName')
begin
  create database MyDatabaseName
end
go

-- specify that all subsequent sql commands use this database
use [MyDatabaseName]
go

-- add UserAccount table if it does not already exist
if not exists (select * from information_schema.columns
where table_name = 'UserAccount')
begin
	create table UserAccount 
	(
		Id int identity(1000,1) not null,
		UserName nvarchar(50) not null,
		[Password] nvarchar(20) null,
		DateUpdated datetime not null,
		DateCreated datetime not null,
		
		constraint PK_UserAccount primary key (Id),
	)	
end
go

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

Ответ #2 @Павел 07.12.2011 10:35
Спасибо. А по второму вопросу, кто знает ответ?

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

Ответ #3 @Aleksey Nemiro 07.12.2011 12:19
Вопрос 2: Как занести в нее определенные значения? Дамп базы не допускается.
INSERT INTO UserAccount (UserName, [Password], DateUpdated, DateCreated)
VALUES ('Василий Пупкин', '123', GETDATE(), GETDATE());

INSERT INTO UserAccount (UserName, [Password], DateUpdated, DateCreated)
VALUES ('Маша Иванова', '2345', GETDATE(), GETDATE());

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

Ответ #4 @Павел 07.12.2011 20:47
Спасибо. А как быть, если база довольно обширная? Как можно ее восстановить, например, удаленно?

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

Ответ #5 @Aleksey Nemiro 07.12.2011 21:12
Сделать бекап базы и восстановить её на севере. Для этого нужен полный доступ к серверу, либо, если это хостинг, у хостера в панели управления должна быть реализована возможность восстанавливать БД.

Можно и запросами, создать множество INSERT INTO. Вот тут, хоть и не по теме, но показано как перенести много данных с одного сервера на другой без использования традиционных бекапов. Если просто переносить данные одной таблицы описанным в ёлпере способом, то проблем возникнуть не должно. Если таблиц будет много и помимо них будут еще и хранимые процедуры, функции и т.п., то могут возникнуть проблемы, база скорей всего перенесется криво и с ней придется еще повозиться на новом сервере, но в принципе не критично.

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

Добавить свой ответ в эту тему
DateTime NULL? @Павел 06.12.2011 23:21
Всем привет.
Вопрос, скорее всего, самый обычный, но я так и не нашел ответа, который бы решил мою задачу.
Есть БД с полем типа date с возможностью значения NULL.
При вводе данных из SQL managenent никаких проблем. Но при попытке вводить данные (вернее не вводить никаких значений) программно я не могу занести значение NULL.
Я нашел в и-нете решение проблемы типа:
//(через метод)
public DateTime? GetDate()
{
    return string.IsNullOrEmpty(tbDate.Text) ? (DateTime?) null : DateTime.Parse(tbDate.Text);
}

//(или через поле)
public DateTime? DateTarget
{
    get 
        { 
            return (TargetTradingContract == null) ? (DateTime?)null : TargetTradingContract.Date;
        }
}
Но эти способы выдают на выходе значение {01.01.0001 0:00:00}, которое при вставке в БД приводит к исключению:
Переполнение SqlDateTime. Должно находиться в пределах от 1/1/1753 12:00:00 AM и 12/31/9999 11:59:59 PM.
Для чего же тогда создавать возможность значения NULL, если туда нельзя ввести это значение?
Уверен, что решение есть, только пока не могу его найти. Кто подскажет?

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

Ответ #1 @Алексей Немиро 06.12.2011 23:31
Чтобы в базу записалось null, в c# нужно передавать не null, а DBNull.Value

Что касается дат и предельного интервала, то в SQL Server есть тип datetime2, который позволяет указывать любые даты, в отличие от datetime, где дата должна находиться в строго определенном интервале (сегодня +/- тройка сотен лет, точно нужно смотреть в документации).

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

Ответ #2 @Павел 07.12.2011 01:21
Спасибо. Только не пойму, как это сделать - DBNull.Value нельзя присвоить переменной типа DateTime. Я имею в виду конструкцию :
return (TargetTradingContract == null) ? DBNULL.Value : TargetTradingContract.Date;

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

Ответ #3 @Aleksey Nemiro 07.12.2011 09:33
DBNull.Value нельзя присвоить переменной типа DateTime
И не только DateTime, но и к любому другому типу, исключая object

Все зависит от того, как данные попадают в базу. Обычно используется SqlCommand, если так, то нужно просто передать DBNull.Value в соответствующий параметр.

Если из функции GetDate, то она должна возвращать object, тогда можно будет использовать DBNull.Value.

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

Ответ #4 @Павел 07.12.2011 10:32
Спасибо. Понял.
Вот код, к которому я пришел.

if (person.Birthday != DateTime.MinValue)
            UpdatePersonCommand.Parameters["@Birthday"].Value = person.Birthday;
        else
            UpdatePersonCommand.Parameters["@Birthday"].Value = DBNull.Value;

А покрасивее его можно изобразить?

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

Ответ #5 @Aleksey Nemiro 07.12.2011 12:15
Да, вполне нормальный код.

Красивее, одной строкой, можно попробовать так:
UpdatePersonCommand.Parameters["@Birthday"].Value
= (person.Birthday != DateTime.MinValue ? person.Birthday : DBNull.Value);

Еще можно хелпер-функцию написать, если подобный код нужен будет часто:
public static object GetDateValue(DateTime d)
{
  return (d != DateTime.MinValue ? d : DBNull.Value)
}
UpdatePersonCommand.Parameters["@Birthday"].Value = GetDateValue(person.Birthday);

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

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

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

Вакансии в IT

Web программист

Россия, Санкт-Петербург | Работа в офисе | 50 000.00 RUB

SEO специалист

Россия, Санкт-Петербург | Работа в офисе | 40 000.00 RUB

Менеджер по продажам в интернет-магазин. SEO специалист.

Россия, Санкт-Петербург | Работа в офисе | 50 000.00 RUB

Веб дизайнер

Россия, Нижний Новгород | Работа в офисе | 30 000.00 RUB

SEO специалист

Россия, Йошкар-Ола | Работа в офисе

Программист

Россия, Казань | Работа в офисе | 30 000.00 RUB

Ведущий РНР разработчик

Россия, Новосибирск | Работа в офисе

Программист

Россия, Новосибирск | Работа в офисе | 15 000.00 RUB

Ведущий разработчик

Россия, Новосибирск | Работа в офисе | 80 000.00 RUB

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

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

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

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

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

В России зарегистрировался сотовый оператор "Ё-мобайл"

Роскомнадзор выдал компании "Ё-мобайл" разрешение на оказание услуг сотовой связи в Москве, Санкт-Петербурге и нескольких областях центральной России. По условиям новый сотовый оператор должен начать предоставлять услуги не позднее 21 ноября 2013 года. Компания будет работать по системе MVNO.

08.12.2011 10:49 · Категория: Бизнес в IT · Источник: Lenta.ru

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

Facebook устранила уязвимость, связанную с доступом к приватным фото

Социальная сеть Facebook сегодня вечером сообщила об устранении выявленного около суток назад программного бага, позволявшего при помощи ряда манипуляций получать несанкционированный доступ к приватным фотографиям пользователей этой соцсети. Об уязвимости было сообщено не совсем обычно - в сети были опубликованы приватные фото главы компании Марка Цукерберга. Кроме того, еще 27 ноября один из анонимных участников форума сайта Bodybuilding.com опубликовал пошаговые инструкции относительно того, как получать доступ к фотографиям участников Facebook, даже если сами фото были отмечены как приватные.

Уязвимость, явленная пользователям, опирается на служебную систему Facebook, позволяющую системе находить порнографические и противозаконные материалы. За счет ряда не слишком сложных манипуляций этой системой можно получить доступ к чужим приватным данным. В результате наличия уязвимости в сеть попали фотографии Цукерберга с последнего Дня Благодарения в США, где глава компании готовит традиционную индейку.

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

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

IBM откроет собственный центр в иннограде "Сколково"

Фонд «Сколково» и IBM заключили два соглашения о сотрудничестве. По условиям первого соглашения, которое сегодня подписали Виктор Вексельберг, президент Фонда «Сколково», Дэвид Стокс, генеральный директор IBM в Центральной и Восточной Европе, и Кирилл Корнильев, генеральный директор IBM в России и СНГ, в рамках «Сколково» будет создан Научно-технический центр IBM. По оценкам IBM, к концу 2012 г. в составе Научно-технического центра будет работать до 170 человек. Согласно второму соглашению, IBM лицензирует Фонду ряд ноу-хау в области построения системы управления интеллектуальной собственностью, в том числе методики идентификации и оценки технологий, которые являются перспективными с точки зрения их коммерциализации.

Первое соглашение развивает основные положения меморандума о взаимопонимании, подписанного между IBM и Фондом «Сколково» в июне 2011 г. В частности, определены основные направления разработок Научно-технического центра IBM в рамках «Сколково» и временные сроки реализации проектов. Ключевой задачей Научно-технического центра IBM как участника «Сколково» предполагается участие в разработке проектов в области развития интеллектуальных нефтяных месторождений, создания российских NFC-технологий и решений бизнес-аналитики для повышения безопасности дорожного движения.

В рамках второго соглашения эксперты IBM передадут специалистам Фонда и его дочерних компаний, включая Центр интеллектуальной собственности «Сколково», ряд документов, описывающих опыт IBM и методики создания центров компетенции в сфере интеллектуальной собственности, которые позволят «Сколково» использовать современные подходы к идентификации и развитию конкурентоспособных технологий. Фонд рассчитывает получить аналитические инструменты и методологический багаж компании IBM в области анализа спроса на технологии и поиска партнеров в исследованиях и коммерциализации. В условиях практического отсутствия отечественного опыта в последней области данная сделка является уникальной.

«Дорожная карта нашего сотрудничества подробнее очерчивает планы и ожидания сторон и определяет основные направления работы, которые позволят нам стимулировать развитие экосистемы инноваций – в частности, развивать структуру управления интеллектуальной собственностью «Сколково» и наших партнеров, – заявил президент Фонда «Сколково» Виктор Вексельберг. – Международная экспертиза и лидирующие позиции IBM в области исследований и разработок и фокус «Сколково» на развитие инноваций определяют серьезный потенциал нашего сотрудничества для России».

«Технологии и решения с большим интеллектуальным потенциалом играют все большую роль в развитии бизнеса, государства и общества. IBM рада сотрудничать со «Сколково» для развития инноваций и культуры предпринимательства, имеющих ключевое значение для будущего России», – сказал Дэвид Стокс, директор IBM в Центральной и Восточной Европе.

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

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

Началась открытая регистрация доменов «для взрослых» .XXX

Началась открытая регистрация доменов «для взрослых» .XXX. Заявки на регистрацию от российских пользователей и компаний принимает компания Ru-Center, которая первой в России получила аккредитацию в домене ХХХ. В период открытой регистрации стоимость одного доменного имени .XXX составит 4000 рублей. Для делегирования любого зарегистрированного .XXX от его владельца потребуется вступить в Сообщество индустрии для взрослых.

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

По данным ICM Registry, администратора домена ХХХ, в рамках приоритетного периода регистрации было подано более 80 тыс. заявок на регистрацию или блокировку доменных имен, однако не все из них будут одобрены.

Согласно статистике Ru-Center, регистратору за время периодов премиальной и приоритетной регистрации поступило около 200 заявок. Значительная часть из них (около 80) были поданы владельцами товарных знаков, которые не являются представителями «сообщества индустрии для взрослых», для исключительной блокировки доменных имен в .ХХХ.

07.12.2011 09:39 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

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

Intel и Micron Technology начинают выпуск 20-нанометровой флеш-памяти

Intel и Micron Technology сегодня анонсировали, что их совместное предприятие по выпуску чипов флеш-памяти формата NAND начало использовать новые технологические нормы, позволяющие создавать чипы памяти в 128 Гбайт данных. Размеры чипов таковы, что они могут уместиться на кончике пальца.

Совместное предприятие двух компаний - IM Flash Technologies - сегодня сообщило о начале производства первых в мире 20-нанометровых чипов, использующих 128-гигабитные MLC-подложки (Multi Levell Cell). Новые 20-нанометровые представляют собой чипы самой высокой емкости и плотности записи в отрасли. Новинки предназначены для использования в планшетах, смартфонах и различных портативных электронных устройствах.

До сих пор IM Flash Technologies использовала 25-нанометровый литографический процесс для производства подложек на 64 Гбита данных. Сейчас эти чипы применяются во многих SSD-накопителях. Что касается новых 20-нанометровых чипов, то их тестовые образцы станут доступны для производителей в январе 2012 года, а массовые поставки готовых чипов флеш-памяти для устройств начнутся к середине 2012 года.

07.12.2011 09:37 · Категория: Железо · Источник: 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 если иное не указано отдельно.


В избранное