Here is a great article that explains how to use TVP’s via .Net and a stored procedure
The following example transforms the supplied xml string, using XSL/T and outputs to another string
using (StringReader rdr = new StringReader(selectedLine.AdditionalInformation))
{
XPathDocument doc = new XPathDocument(rdr);
using (StringWriter writer = new StringWriter())
{
transformer.Transform(doc, null, writer);
titleLabel.Attributes.Add("onmouseover", string.Format(@"showDiv(""{0}"")", writer.ToString()));
}
}
The XSL/T loaded into the transformer variable is as follows
And a sample xml string is as follows:
The result from the transformation is as follows:
Body Rides Additional answer code Additional answer date Answer code TOS Answer date Author Richard Laymon Delivery to Company Name, Address Line 1, AddressLine 2 Expected delivery 09/08/2009 Held orders Ordered on 20/07/2009 Print runs
The code to build up the xml within the object is below, note that the values are HtmlEncoded to ensure that there are no problems in the web page.
public string AdditionalInformation
{
get
{
StringBuilder builder = new StringBuilder();
builder.Append(string.Format(CultureInfo.CurrentCulture,
@"
Following code iterates through each entry in a dictory
For Each keyPair As KeyValuePair(Of String, Int32) In aDepot.PostcodeCounters
builder.Append("<tr><td>")
builder.Append(keyPair.Key)
builder.Append("</td><td align=""right"">")
builder.Append(keyPair.Value)
builder.Append("</td></tr>")
Next
In Visual Studio 2008 you’ve lost the abillity to click on the drop down in the code behind and see all the event signatures that are available but haven’t handled yet. To get the signature you are after without using the properites in the desinger you can type…
this.
As you hit the . all methods and events should appear, pick the event you after e.g. Load
Then add type += after the event name and press TAB TAB, the event is automatically generated. ASP.Net auto wires the events with the correct name and signature so you should be able to delete the line of code that binds the event.
Check out this article for more info.
If you need special characters in your VB.Net use the ControlChars class, it has definitions for Lf, Crlf, etc.
See MSDN for more details
In my VB.Net code I’ve always used the DateDiff function to determine the number of days between 2 dates. Today I was playing around working out which order to put dates in and discovered that the Date object as a method called Subtract. This returns a TimeSpan then its just a case of using the Days property
startDate.Subtract(now).Days
Note that if startDate is before todays date this will return a negative value
>? now.subtract(cdate("1 Jan 2009")).days
1
>? cdate("1 Jan 2009").subtract(now).days
-1
>? now.subtract(cdate("1 Jan 2008")).days
367
The following type characters can be used to force a literal value to be a certain data type
"a"c 'Char
#1/1/1900# 'Date
0D 'Decimal
0@ 'Decimal
0.0R 'Double
0.0# 'Double
0I 'Integer
0% 'Integer
0L 'Long
0& 'Long
0S 'Short
0.0F 'Single
0.0! 'Single
See MSDN for more details
In VB.Net Framework V2.0 a new command was introduced called TryCast It works the same as DirectCast but if the cast fails instead of throwing an exception the object is set to Nothing
Take a look at MSDN for more details.
Ok so this might be an obvious one but it got me stuck for a little while so thought I should post it. When you use the PrintPreviewDialog the documents Print method is automatically called when the dialog is shown. But using the PrintDialog the Print method of the associated PrintDocument is not called when the user clicks the Print button on the dialog, you have to check that OK was returned as the dialogs result!