--- title: "Specifying XML values as parameters" description: "Demonstrates how to pass XML data as a parameter to a command." ms.date: "08/15/2019" dev_langs: - "csharp" ms.assetid: 2c4d08b8-fc29-4614-97fa-29c8ff7ca5b3 ms.prod: sql ms.prod_service: connectivity ms.technology: connectivity ms.topic: conceptual author: David-Engel ms.author: v-daenge ms.reviewer: v-kaywon --- # Specifying XML values as parameters [!INCLUDE[Driver_ADONET_Download](../../../includes/driver_adonet_download.md)] If a query requires a parameter whose value is an XML string, developers can supply that value using an instance of the **SqlXml** data type. There really are no tricks; XML columns in SQL Server accept parameter values in exactly the same way as other data types. ## Example The following console application creates a new table in the **AdventureWorks** database. The new table includes a column named **SalesID** and an XML column named **SalesInfo**. > [!NOTE] > The **AdventureWorks** sample database is not installed by default when you install SQL Server. You can install it by running SQL Server Setup. The example prepares a object to insert a row in the new table. A saved file provides the XML data needed for the **SalesInfo** column. To create the file needed for the example to run, create a new text file in the same folder as your project. Name the file MyTestStoreData.xml. Open the file in Notepad and copy and paste the following text: ```xml 300000 30000 International Bank BM 1970 Road 7000 3 T1 2 ``` ```csharp using System; using System.Data; using Microsoft.Data.SqlClient; using System.Xml; using System.Data.SqlTypes; class Class1 { static void Main() { using (SqlConnection connection = new SqlConnection(GetConnectionString())) { connection.Open(); // Create a sample table (dropping first if it already // exists.) string commandNewTable = "IF EXISTS (SELECT * FROM dbo.sysobjects " + "WHERE id = " + "object_id(N'[dbo].[XmlDataTypeSample]') " + "AND OBJECTPROPERTY(id, N'IsUserTable') = 1) " + "DROP TABLE [dbo].[XmlDataTypeSample];" + "CREATE TABLE [dbo].[XmlDataTypeSample](" + "[SalesID] [int] IDENTITY(1,1) NOT NULL, " + "[SalesInfo] [xml])"; SqlCommand commandAdd = new SqlCommand(commandNewTable, connection); commandAdd.ExecuteNonQuery(); string commandText = "INSERT INTO [dbo].[XmlDataTypeSample] " + "([SalesInfo] ) " + "VALUES(@xmlParameter )"; SqlCommand command = new SqlCommand(commandText, connection); // Read the saved XML document as a // SqlXml-data typed variable. SqlXml newXml = new SqlXml(new XmlTextReader("MyTestStoreData.xml")); // Supply the SqlXml value for the value of the parameter. command.Parameters.AddWithValue("@xmlParameter", newXml); int result = command.ExecuteNonQuery(); Console.WriteLine(result + " row was added."); Console.WriteLine("Press Enter to continue."); Console.ReadLine(); } } private static string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. return "Data Source=(local);Integrated Security=true;" + "Initial Catalog=AdventureWorks; "; } } ``` ## Next steps - - [XML data in SQL Server](xml-data-sql-server.md)