using-openxml-to-insert-data-in-sql-server Feb 19, 2010 SQL SERVER   T-SQL

Microsoft SQL Server provides the mechanism to save XML data to the SQL table using OpenXML. We can use a stored procedure and pass a XML text as a string. It is useful when we have a large data in XML format and we want to save the whole data in different tables.

So first start declaring the variables. The first declare the document variable and a XML document variable as Varchar(8000) or Varchar(MAX) - It’s a same thing

DECLARE @idoc int
DECLARE @doc varchar(8000)

Now we can set the value to the @doc variable, the @doc variable will accept the XML file as a parameter. We can also have a complete XML data in the parameter only if the XML data is less.

OpenXML takes 3 parameters:

  • The handler which we have declare at the begining will holds the XML document in the memory.
  • XPath variable to access the various elements of the XML document.
  • The last parameter here ‘2’ allows us to access XPath as elements.

Here I have read a XML file in the document variable and store in the table. Here is the full SQL query to achieve this. You can also convert the below code to stored procedure and pass XML file or string as a parameter.

DECLARE @idoc int
DECLARE @doc varchar(8000)
SET @doc ='<ROOT><student>
<id>1</id>
<name>Prashant</name>
<age>32</age>
</student>
<student>
<id>2</id>
<name>Swami</name>
<age>42</age>
</student>
<student>
<id>3</id>
<name>Ash</name>
<age>23</age>
</student>
<student>
<id>4</id>
<name>Kris</name>
<age>12</age>
</student>
<student>
<id>5</id>
<name>Derek</name>
<age>75</age>
</student>
</ROOT>'
 
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
Insert into Students SELECT id, name, age from
OPENXML (@idoc, '/ROOT/student',2)
WITH (id  int, name varchar(50), age int)
Enable intellisense Jquery in Visual Studio 2008 Jan 15, 2010 JQUERY   VISUAL STUDIO

Microsoft with Jquery team have added the intellisense support for VS2008. I am using Jquery for the past few months, but never thought that it would be great if there would be intellisense support for Jquery. I read Scott Gu’s post of enable intellisense support for Jquery in Visual Studio. The new Visual Studio 2010 comes pre-packed with Jquery intellisense support.

Windows 7 API Development and Training Kit Jan 15, 2010 .NET FRAMEWORK   API   MICROSOFT WINDOWS

I recently installed Windows 7® Ultimate on my machine and found it more soothing and reliable in terms of preformance than Windows Vista® Ultimate. As a tech enthusiast, I do some serach on the internet and found two links from Microsoft website that will allow developers to develop applications specifically for Windows 7. The Windows API code pack allows developers to develop those features which are not available with .NET Framework. So to get started visit:

The training kit includes the demos and presentations, hand-on labs for developers. I haven’t yet started with Windows 7 development. But as soon as I get started I will blog some demo for Windows 7.

How to plug-in a DLL into a C# project Jan 7, 2010 .NET FRAMEWORK   C#

John Grove share a code at MSDN on how can we call DLLs methods dynamically using C# code.

The below code can further be modified and a developer can easily extend the functionality of his application to create a application which accepts DLLs as plug-ins. This concept is useful when different users have different requirements in a generalized application like in the case of famous photo editing program Photoshop from Adobe. Here anyone can create a plug-in and hook it up with the host application which further inherits all the functionalities from the DLL.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Assembly assembly = Assembly.LoadFrom(@"C:\Documents and Settings\john.grove\MyMath.dll");
            Type mathUtility = assembly.GetType("MyMathUtilty");
            Object theInstance = Activator.CreateInstance(mathUtility);
            Int32 result = (Int32)mathUtility.InvokeMember("Add", BindingFlags.InvokeMethod, null, theInstance, new object[] { 56, 26 });
            Console.WriteLine("Dynamically invoking MyMathUtilty Add method");
            Console.WriteLine("56 + 26 = {0}", result);
            Console.WriteLine("");
 
            // get all public static methods of MyMathUtilty type
            MethodInfo[] methodInfos = mathUtility.GetMethods(BindingFlags.Public | BindingFlags.Static);
            Console.WriteLine("All public/static methods in MyMathUtilty");
            Console.WriteLine("----------------------------------------");
            for (Int32 i = 0; i < methodInfos.Count(); i++ )
                Console.WriteLine("{0}.) {1}", i + 1, methodInfos[i].Name);
            Console.ReadLine();
        }
    }
}
Removing Duplicates from a List in C# Dec 24, 2009 .NET FRAMEWORK   C#   CODE SNIPPETS

For more details and detailed explaination of the code visit this link.

static List removeDuplicates(List inputList)
{
      Dictionary uniqueStore = new Dictionary();
      List finalList = new List();
      foreach (string currValue in inputList)
      {
          if (!uniqueStore.ContainsKey(currValue))
          {
              uniqueStore.Add(currValue, 0);
              finalList.Add(currValue);
          }
      }
      return finalList;
}