Как отсортировать DataTable

by DenizK 12. ноября 2011 19:52
private void SortByTwoColumns()
{
// Get the DefaultViewManager of a DataTable.
DataView view = DataTable1.DefaultView;
// By default, the first column sorted ascending.
view.Sort = "State, ZipCode DESC";
}

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

C# | Tips & tricks

Генерация превью картинки для видео

by Ильшат 2. ноября 2011 00:24

Появилась необходимость генерить превью картинки для загружаемого видео. Для этого нам понадобится программка viaffmpeg. 

Собственно привожу кусок кода для реализации превью

{       
Process ffmpeg; 
string video;
string thumb;
video = Page.MapPath("video.mp4"); // видео файл из которого нужно получить превью
thumb = Page.MapPath("") +"\\frame.jpg"// путь для сохранения картинки
ffmpeg = new Process();
ffmpeg.StartInfo.Arguments = " -i \""+video+"\" -s 108*80  -vframes 1 -f image2 -vcodec mjpeg \""+thumb+"\""// аргументы
ffmpeg.StartInfo.FileName = Page.MapPath("ffmpeg.exe"); // собственно сама программка которая будет выполнять генерацию
ffmpeg.Start(); //    } 

Пруфлинк - http://www.codeproject.com/KB/aspnet/ffmpeg_csharp.aspx 

Тут exe-файл который нам понадобится - fmpeg.zip (1.43 mb)

Небольшая реализация - WebSite1.rar (1.38 mb)

P.S. Так же можно конвертить видео в различные форматы

Текущий рейтинг: 5.0 (1 голосов)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

ASP.NET | C# | видео

Предпочитаете скеливать строки с помощью string.Format?

by galyamov 25. апреля 2011 14:18
Тогда вот вам сравнительный анализ разных методов конкатинации строк:
        static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            const int length = 1000000;
            string[] res = new string[length];

            // KISS
            sw.Restart();
            for (int i = 0; i < length; i++)
            {
                res[i] = "(" + i.ToString() + ")";
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds); // 642

            // Медленнее из-за боксинга. Не забываем про ToString().
            sw.Restart();
            for (int i = 0; i < length; i++)
            {
                res[i] = "(" + i + ")";
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds); // 687

            // Самый медленный вариант и не самый удобный.
            sw.Restart();
            for (int i = 0; i < length; i++)
            {
                res[i] = String.Format("({0})", i.ToString());
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds); // 878!

            // Не на много быстрее чем первый, но самый не удобный.
            // Имеет смысл использовать, если критична скорость или требуется сложная конкатинация.
            sw.Restart();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < length; i++)
            {
                res[i] = sb.Clear()
                    .Append("(")
                    .Append(i.ToString())
                    .Append(")")
                    .ToString();
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds); // 631

            Console.ReadLine();
        }
Вывод: использовать "+" - это нормально.

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

C#

Как узнать название текущего файла и номер строки в нем

by DenizK 9. июня 2010 11:00

Иногда в целях отладки полезно знать номер текущей исполняемой строки в файле и название файла. В С++ для этого применялись диррективы предпроцессора __LINE__ и __FILE__. А в C# вы можете делать так

string currentFile=new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName(); 

int currentLine = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileLineNumber(); 

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

C# | Tips & tricks

DotNetNuke портирован на C#

by DenizK 2. июня 2010 17:56
Это свершилось! Пока основная версия CMS конечно на VB.NET - т.к. тестирование новых сборок еще не завершено. Однако вы можете скачать исходный код на C# для версий 5.4.1 и 5.4.2. Подробности на http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryId/2623/DotNetNuke-source-in-C-Yeah-Really.aspx

Текущий рейтинг: 5.0 (1 голосов)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

ASP.NET | C#

Как тестировать отправку писем

by AigizK 23. марта 2010 13:40

Иногда нужно проверить отправку писем. Самый простой способ добавить следующий код в web.config 

 

<configuration>
	<system.net>
		<mailSettings>
			<smtp deliveryMethod="specifiedPickupDirectory">
				<specifiedPickupDirectorypickupDirectoryLocation="c:\maildrop"/>
			</smtp>
		</mailSettings>
	</system.net>
</configuration>

 А в коде отправлять письмо через SmtpClient. Все отправленные письма будут сохранены в папке c:\maildrop в формате *.eml,которую может открыть Outlook

Текущий рейтинг: 3.0 (2 голосов)

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

.NET | C#

IDs

by sgalyamov 26. октября 2009 08:19

@#$%^!!!

Нужно всегда задавать значение ID у контролов!

У меня asp:UpdatePanel с кнопкой в нем, которая запускает постбек. Если ИД не задать для нее, то asp:UpdatePanel начинает работать не корректно, постбеки не оталвливаются.

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

C# | Баги

System.Transactions.TransactionScope

by sgalyamov 23. октября 2009 03:43

Узнал про прикольный класс System.Transactions.TransactionScope.

Кусок кода исполняется как единая транзакция.



Использовать как-то так:

  1. using (TransactionScope ts = new TransactionScope())
  2. {
  3. // Удаляем старые ответы
  4. AnswerUtility.Delete(id, UserUtility.CurrentUserName);
  5. // запоминаем в БД ответы пользователя
  6. AnswerUtility.SaveAnswerToDB(answers);

  7. // завершение транзакции
  8. ts.Complete();
  9. }
Прекрасно работает с SQL to LINQ.

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

.NET | C#

Embedded statement cannot be a declaration or labeled statement

by sgalyamov 23. октября 2009 03:39
Оказывается в c#, так можно:
  1. if(true)
  2. {
  3.   int i = 1;
  4. }
, а так:
  1. if(true)
  2.   int i = 1;
нельзя.

Ушел учить матчасть…

Текущий рейтинг: 1.0 (1 голосов)

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

C#

О нас

Это блог компании Инлайн. Мы занимаемся разработкой сайтов, корпоративных порталов и корпоративных информационных систем на основе новейших технологии Microsoft  - ASP.NET, SharePoint и Silverlight. А в этом блоге мы размещаем самые последние новости в области разработке для web.

Облако тегов