So since there is this impending storm (blizzard, snow storm, snowmageddon, snowpocalypse, snowzilla) “Nemo” hitting us here on the East coast within a few hours, I figured a good topic might be on weather alert data. There is a bunch of data available from the NOAA (National Oceanic and Atmospheric Administration) on their site. Data is available in several categories, including Forecasts, Watch/warnings, Storm Prediction Center Forecast Products, etc. In my very quick example I’m going to pick the “Watch / Warning” data for my region and display this using WPF for an easy visualization. Continue reading “Display Weather Alerts From NOAA Using Atom (WPF Example)”
c#
c# DataTable Copy / Filter / Sort & Clone
If you’re like me (I hope not too much like me) you probably find yourself using DataTables to hold lots of data for fast, flexible in memory usage. I get asked often, “how can I copy a DataTable?” or even more often, “how can I copy a DataTable, but change the sort or modify the rows”. Look no further. Below you’ll find my thoughts:
Example one (a simple copy with a sort difference):
//datatable
var table = new DataTable();
//get some data
using (var conn = new SqlConnection(yourSqlConn))
{
var comm = new SqlCommand(@"select * from someTable order by someColumn", conn);
comm.CommandType = CommandType.Text;
conn.Open();
var data = comm.ExecuteReader();
table.Load(data);
}
//bind to some control (repeater)
rptFirstList.DataSource = table;
rptFirstList.DataBind();
//second table
var secondTable = new DataTable();
secondTable = table.Copy();
secondTable.DefaultView.Sort = "someOtherColumn";
//bind second
rptSecondList.DataSource = secondTable;
rptSecondList.DataBind();
Example two (creating a copy of the table but allowing a filter, sort or other criteria):
//datatable
var table = new DataTable();
//get some data
using (var conn = new SqlConnection(yourSqlConn))
{
var comm = new SqlCommand(@"select * from someTable order by someColumn", conn);
comm.CommandType = CommandType.Text;
conn.Open();
var data = comm.ExecuteReader();
table.Load(data);
}
//bind to some control (repeater)
rptFirstList.DataSource = table;
rptFirstList.DataBind();
//second table
var secondTable = new DataTable();
//clone to get columns - NO data is copied
secondTable = table.Clone();
//loop through rows and import based on filter
foreach (DataRow dr in table.Select("someColumn = 'value'","someColumnToSort")) {
secondTable.ImportRow(dr);
}
//bind second
rptSecondList.DataSource = secondTable;
rptSecondList.DataBind();
Creating a .dll library for use in vbscript (.vbs) using Visual Studio
So for some reason you have the need to use vbscript (maybe a .vbs file, Excel script, etc) but like many others before you, you have run into a limitation of vbscript. I’m not going to discuss the reasons why / why not to use vbscript, I am already assuming you have a good reason. Onto the example. In this case, we are “fixing” the limitation of vbscript to not handle larger numbers well. We are going to extend our vbscript by creating a .dll library in Visual Studio that allows us to pass and return data in the format we need, in the example case, to round a large decimal number. Continue reading “Creating a .dll library for use in vbscript (.vbs) using Visual Studio”
Downloading a remote file with vb.net / c# using WebClient
Can you believe it’s 2013 already? Me either. Anyhow, just wanted to provide a simple solution for a very popularly asked question: “how can I download a remote file?.” Well, below is a basic method using the WebClient class. It’s pretty cut and dry, just pass a remote file (ie: http://www.chrisbitting.com/image.jpg) and a local file (c:\temp\file.jpg) and it downloads. If you’re interested how to do this with cookies enabled for authentication, let me know!
vb.net
Private Sub dloadhttpFile(fileToDownload As String, localFile As String)
'Examples:
'fileToDownload = http://www.chrisbitting.com/image.jpg
'localFile = c:\files\someimage.jpg
Try
'create an instance of WebClient - the heart of downloading a file
Dim fileReader As New WebClient()
'check if the file already exists locally
If Not (System.IO.File.Exists(localFile)) Then
fileReader.DownloadFile(fileToDownload, localFile)
End If
Catch ex As HttpListenerException
Console.WriteLine(("Error Downloading: " & fileToDownload & " - ") + ex.Message)
Catch ex As Exception
Console.WriteLine(("Error Downloading: " & fileToDownload & " - ") + ex.Message)
End Try
End Sub
c#
private void dloadhttpFile(string fileToDownload, string localFile)
{
//Examples:
//fileToDownload = http://www.chrisbitting.com/image.jpg
//localFile = c:\files\someimage.jpg
try
{
//create an instance of WebClient - the heart of downloading a file
WebClient fileReader = new WebClient();
//check if the file already exists locally
if (!(System.IO.File.Exists(localFile)))
{
fileReader.DownloadFile(fileToDownload, localFile);
}
}
catch (HttpListenerException ex)
{
Console.WriteLine("Error Downloading: " + fileToDownload + " - " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("Error Downloading: " + fileToDownload + " - " + ex.Message);
}
}