<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Usable Asp.Net : ado.net</title><link>http://msmvps.com/blogs/egoldin/archive/tags/ado.net/default.aspx</link><description>Tags: ado.net</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Programmatically determining the sqlDbType of a field</title><link>http://msmvps.com/blogs/egoldin/archive/2006/12/20/programmatically-determining-the-sqldbtype-of-a-field.aspx</link><pubDate>Wed, 20 Dec 2006 21:34:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:437727</guid><dc:creator>egoldin</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/egoldin/rsscomments.aspx?PostID=437727</wfw:commentRss><comments>http://msmvps.com/blogs/egoldin/archive/2006/12/20/programmatically-determining-the-sqldbtype-of-a-field.aspx#comments</comments><description>&lt;P&gt;I found this remarkable info in a newsgroup post&amp;nbsp;from David Sceppa from Microsoft:&lt;/P&gt;
&lt;P&gt;You can build a SqlCommand to query the table and retrieve this schema information from the SqlDataReader through its GetSchemaTable method.&amp;nbsp; This method returns a DataTable of schema information.&amp;nbsp;Each row in the DataTable corresponds to a column in the resultset for the original query.&amp;nbsp;The DataTable of schema information includes columns for column name, data type, etc. There's a column called ProviderType that contains an integer, which you can cast to SqlDbType.&lt;BR&gt;&lt;BR&gt;Here's some code that should help:&lt;BR&gt;&lt;BR&gt;Visual Basic .NET:&lt;BR&gt;&amp;nbsp; Dim strConn, strSQL As String&lt;BR&gt;&amp;nbsp; strConn = "Data Source=(local)\NetSDK;Initial&amp;nbsp;Catalog=Northwind;" &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Trusted_Connection=Yes;"&lt;BR&gt;&amp;nbsp; Dim cn As New SqlConnection(strConn)&lt;BR&gt;&amp;nbsp; cn.Open()&lt;BR&gt;&amp;nbsp; strSQL = "SELECT OrderDate FROM Orders"&lt;BR&gt;&amp;nbsp; Dim cmd As New SqlCommand(strSQL, cn)&lt;BR&gt;&amp;nbsp; Dim rdr As SqlDataReader&lt;BR&gt;&amp;nbsp; rdr = cmd.ExecuteReader(CommandBehavior.SchemaOnly)&lt;BR&gt;&amp;nbsp; Dim tbl As DataTable = rdr.GetSchemaTable()&lt;BR&gt;&amp;nbsp; rdr.Close()&lt;BR&gt;&amp;nbsp; cn.Close()&lt;BR&gt;&amp;nbsp; Dim intOrderDateType As Integer&lt;BR&gt;&amp;nbsp; intOrderDateType = CType(tbl.Rows(0)("ProviderType"), Integer)&lt;BR&gt;&amp;nbsp; Dim typOrderDateType As SqlDbType&lt;BR&gt;&amp;nbsp; typOrderDateType = CType(intOrderDateType, SqlDbType)&lt;BR&gt;&amp;nbsp; Console.WriteLine("ProviderType = " &amp;amp; intOrderDateType)&lt;BR&gt;&amp;nbsp; Console.WriteLine("SqlDbType = " &amp;amp; typOrderDateType.ToString())&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Visual C# .NET:&lt;BR&gt;&amp;nbsp; string strConn, strSQL;&lt;BR&gt;&amp;nbsp; strConn = @"Data Source=(local)\NetSDK;Initial Catalog=Northwind;" +&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Trusted_Connection=Yes;";&lt;BR&gt;&amp;nbsp; SqlConnection cn = new SqlConnection(strConn);&lt;BR&gt;&amp;nbsp; cn.Open();&lt;BR&gt;&amp;nbsp; strSQL = "SELECT OrderDate FROM Orders";&lt;BR&gt;&amp;nbsp; SqlCommand cmd = new SqlCommand(strSQL, cn);&lt;BR&gt;&amp;nbsp; SqlDataReader rdr;&lt;BR&gt;&amp;nbsp; rdr = cmd.ExecuteReader(CommandBehavior.SchemaOnly);&lt;BR&gt;&amp;nbsp; DataTable tbl = rdr.GetSchemaTable();&lt;BR&gt;&amp;nbsp; rdr.Close();&lt;BR&gt;&amp;nbsp; cn.Close();&lt;BR&gt;&amp;nbsp; int intOrderDateType;&lt;BR&gt;&amp;nbsp; intOrderDateType = (int) tbl.Rows[0]["ProviderType"];&lt;BR&gt;&amp;nbsp; SqlDbType typOrderDateType;&lt;BR&gt;&amp;nbsp; typOrderDateType = (SqlDbType) intOrderDateType;&lt;BR&gt;&amp;nbsp; Console.WriteLine("ProviderType = " + intOrderDateType);&lt;BR&gt;&amp;nbsp; Console.WriteLine("SqlDbType = " + typOrderDateType.ToString());&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=437727" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/egoldin/archive/tags/ado.net/default.aspx">ado.net</category></item></channel></rss>