今天看到SQL数据类型和C#数据类型间的转换,前人留下的。
<?xml version="1.0" encoding="utf-8" ?> <Languages> <Language From="SQL" To="C#"> <Type From="bigint" To="long" /> <Type From="binary" To="object" /> <Type From="bit" To="bool" /> <Type From="char" To="string" /> <Type From="datetime" To="DateTime" /> <Type From="decimal" To="decimal" /> <Type From="float" To="double" /> <Type From="image" To="byte[]" /> <Type From="int" To="int" /> <Type From="money" To="decimal" /> <Type From="nchar" To="string" /> <Type From="ntext" To="string" /> <Type From="numeric" To="decimal" /> <Type From="nvarchar" To="string" /> <Type From="real" To="float" /> <Type From="smalldatetime" To="DateTime" /> <Type From="smallint" To="short" /> <Type From="smallmoney" To="decimal" /> <Type From="text" To="string" /> <Type From="timestamp" To="byte[]" /> <Type From="tinyint" To="byte" /> <Type From="uniqueidentifier" To="Guid" /> <Type From="varbinary" To="byte[]" /> <Type From="varchar" To="string" /> <Type From="xml" To="string" /> <Type From="sql_variant" To="object" /> </Language> <Language From="SQL" To="C# System Types"> <Type From="bigint" To="System.Int64" /> <Type From="binary" To="System.Object" /> <Type From="bit" To="System.Boolean" /> <Type From="char" To="System.String" /> <Type From="datetime" To="System.DateTime" /> <Type From="decimal" To="System.Decimal" /> <Type From="float" To="System.Double" /> <Type From="image" To="System.Byte[]" /> <Type From="int" To="System.Int32" /> <Type From="money" To="System.Decimal" /> <Type From="nchar" To="System.String" /> <Type From="ntext" To="System.String" /> <Type From="numeric" To="System.Decimal" /> <Type From="nvarchar" To="System.String" /> <Type From="real" To="System.Single" /> <Type From="smalldatetime" To="System.DateTime" /> <Type From="smallint" To="System.Int16" /> <Type From="smallmoney" To="System.Decimal" /> <Type From="text" To="System.String" /> <Type From="timestamp" To="System.Byte[]" /> <Type From="tinyint" To="System.Byte" /> <Type From="uniqueidentifier" To="System.Guid" /> <Type From="varbinary" To="System.Byte[]" /> <Type From="varchar" To="System.String" /> <Type From="xml" To="System.String" /> <Type From="sql_variant" To="System.Object" /> </Language> <DbTarget From="SQL" To="SqlClient"> <Type From="bigint" To="SqlDbType.BigInt" /> <Type From="binary" To="SqlDbType.Binary" /> <Type From="bit" To="SqlDbType.Bit" /> <Type From="char" To="SqlDbType.Char" /> <Type From="datetime" To="SqlDbType.DateTime" /> <Type From="decimal" To="SqlDbType.Decimal" /> <Type From="float" To="SqlDbType.Float" /> <Type From="image" To="SqlDbType.Image" /> <Type From="int" To="SqlDbType.Int" /> <Type From="money" To="SqlDbType.Money" /> <Type From="nchar" To="SqlDbType.NChar" /> <Type From="ntext" To="SqlDbType.NText" /> <Type From="numeric" To="SqlDbType.Decimal" /> <Type From="nvarchar" To="SqlDbType.NVarChar" /> <Type From="real" To="SqlDbType.Real" /> <Type From="smalldatetime" To="SqlDbType.SmallDateTime" /> <Type From="smallint" To="SqlDbType.SmallInt" /> <Type From="smallmoney" To="SqlDbType.SmallMoney" /> <Type From="text" To="SqlDbType.Text" /> <Type From="timestamp" To="SqlDbType.Timestamp" /> <Type From="tinyint" To="SqlDbType.TinyInt" /> <Type From="uniqueidentifier" To="SqlDbType.UniqueIdentifier" /> <Type From="varbinary" To="SqlDbType.VarBinary" /> <Type From="varchar" To="SqlDbType.VarChar" /> <Type From="xml" To="SqlDbType.Xml" /> <Type From="sql_variant" To="SqlDbType.Variant" /> </DbTarget> <DbTarget From="SQLCE" To="SqlServerCe"> <Type From="bigint" To="SqlDbType.BigInt" /> <Type From="binary" To="SqlDbType.Binary" /> <Type From="bit" To="SqlDbType.Bit" /> <Type From="char" To="SqlDbType.Char" /> <Type From="datetime" To="SqlDbType.DateTime" /> <Type From="decimal" To="SqlDbType.Decimal" /> <Type From="float" To="SqlDbType.Float" /> <Type From="image" To="SqlDbType.Image" /> <Type From="int" To="SqlDbType.Int" /> <Type From="money" To="SqlDbType.Money" /> <Type From="nchar" To="SqlDbType.NChar" /> <Type From="ntext" To="SqlDbType.NText" /> <Type From="numeric" To="SqlDbType.Decimal" /> <Type From="nvarchar" To="SqlDbType.NVarChar" /> <Type From="real" To="SqlDbType.Real" /> <Type From="smalldatetime" To="SqlDbType.SmallDateTime" /> <Type From="smallint" To="SqlDbType.SmallInt" /> <Type From="smallmoney" To="SqlDbType.SmallMoney" /> <Type From="text" To="SqlDbType.Text" /> <Type From="timestamp" To="SqlDbType.Timestamp" /> <Type From="tinyint" To="SqlDbType.TinyInt" /> <Type From="uniqueidentifier" To="SqlDbType.UniqueIdentifier" /> <Type From="varbinary" To="SqlDbType.VarBinary" /> <Type From="varchar" To="SqlDbType.VarChar" /> <Type From="xml" To="SqlDbType.Xml" /> <Type From="sql_variant" To="SqlDbType.Variant" /> </DbTarget> </Languages>
读取方法
static Dictionary<string, string> list = new Dictionary<string, string>(); static void Main(string[] args) { XElement root = XElement.Load("Languages.xml"); var custs = (from c in root.Elements("DbTarget") where c.Attribute("From").Value.Equals("SQL") && c.Attribute("To").Value.Equals("SqlClient") select c).ToList(); foreach (XElement node in custs.Elements("Type")) { list.Add(node.Attribute("From").Value, node.Attribute("To").Value); } Console.ReadKey(); }