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,然后发现就可以了。真是经验啊。
  • 相关阅读:
    CSS盒子模式(DIV布局快速入门)
    CSS中的滑动门技术
    由浅入深漫谈margin属性
    zz Apache 虚拟主机 VirtualHost 配置
    动态生成编译运行java类
    ubuntu 手动设置DNS服务器,重启后不能上网
    ubuntu下部署发布环境
    zz [Java]读取文件方法大全
    Ubuntu apache2 主机配置文件
    JAVA的CALLBACK
  • 原文地址:https://www.cnblogs.com/zzlp/p/3248468.html
Copyright © 2011-2022 走看看