zoukankan      html  css  js  c++  java
  • SQLSERVER与C#中数据类型的对应关系

    SQLSERVER与C#中数据类型的对应关系
    
      ///<summary>
      ///数据库中与C#中的数据类型对照
      ///</summary>
      ///<paramname="type"></param>
      ///<returns></returns>
      privatestringChangeToCSharpType(stringtype)
      {
       stringreval=string.Empty;
       switch(type.ToLower())
       {
        case"int":
         reval="Int32";
         break;
        case"text":
         reval="String";
         break;
        case"bigint":
         reval="Int64";
         break;
        case"binary":
         reval="System.Byte[]";
         break;
        case"bit":
         reval="Boolean";
         break;
        case"char":
         reval="String";
         break;
        case"datetime":
         reval="System.DateTime";
         break;
        case"decimal":
         reval="System.Decimal";
         break;
        case"float":
         reval="System.Double";
         break;
        case"image":
         reval="System.Byte[]";
         break;
        case"money":
         reval="System.Decimal";
         break;
        case"nchar":
         reval="String";
         break;
        case"ntext":
         reval="String";
         break;
        case"numeric":
         reval="System.Decimal";
         break;
        case"nvarchar":
         reval="String";
         break;
        case"real":
         reval="System.Single";
         break;
        case"smalldatetime":
         reval="System.DateTime";
         break;
        case"smallint":
         reval="Int16";
         break;
        case"smallmoney":
         reval="System.Decimal";
         break;
        case"timestamp":
         reval="System.DateTime";
         break;
        case"tinyint":
         reval="System.Byte";
         break;
        case"uniqueidentifier":
         reval="System.Guid";
         break;
        case"varbinary":
         reval="System.Byte[]";
         break;
        case"varchar":
         reval="String";
         break;
        case"Variant":
         reval="Object";
         break;
        default:
         reval="String";
         break;
       }
       returnreval;
      }
    我为何要找上面这篇文章呢。因为我在写程序时碰到了这样一件事:
    昨天晚上写程序,程序如下:
    using System;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace GetStudent
    {
     /// <summary>
     /// Class1 的摘要说明
     /// </summary>
     class Class1
     {
      static void Main(string[] args)
      {
         
       string connstr = "server=(local);Initial Catalog=BYSJ;User ID =SA;Password=;";
       //SqlConnection conn = new SqlConnection(connstr); 
       SqlConnection conn = new SqlConnection();
       conn.ConnectionString = connstr;
       conn.Open();
       SqlCommand cmd = conn.CreateCommand();
       cmd.CommandText = "Select id, sName from student";
       SqlDataReader reader = cmd.ExecuteReader();
       string output;
       while(reader.Read())
       {
           output = string.Format("学生 {0}	 的学号是 {1}",reader.GetString(1), reader.GetString(0));
        Console.WriteLine(output);
       }
       reader.Close();
       conn.Close();
      }
     }
    }
    
    但是发现编译过去了,但是却读不出数据来,而且有这样的提示:InvalidCastException。
    我查了一下MSDN,发现这个出现的条件是指定的强制转换无效。然后发现要求:所检索的数据必须已经是字符串,所以我检查了一下数据库,把数据结构都改成了nvarchar,然后发现就可以了。真是经验啊。
  • 相关阅读:
    刷新SqlServer数据库中所有的视图
    代码的阅读
    unity3d的模型规范
    XOCDE5开发
    unity3d自动寻路教程
    u3d性能优化
    U3D层的运用
    关于unity3d插件的自动打包
    unity3d各平台通讯原生的平台API的说明
    uniSWF使用注意事项
  • 原文地址:https://www.cnblogs.com/zzlp/p/3248468.html
Copyright © 2011-2022 走看看