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,然后发现就可以了。真是经验啊。
  • 相关阅读:
    BZOJ4269: 再见Xor(线性基)
    Codeforces Round #473 (Div. 2)
    洛谷P3812 【模板】线性基
    CodeChef March Lunchtime 2018 div2
    BZOJ1023: [SHOI2008]cactus仙人掌图(仙人掌dp)
    【Android】Android布局中实现圆角边框
    Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
    mac OSX上eclipse adb无法识别(调试)小米的解决方案
    IOS回调机制——代理,通知中心以及Block
    长沙国储电脑城-学生买电脑-被坑记
  • 原文地址:https://www.cnblogs.com/zzlp/p/3248468.html
Copyright © 2011-2022 走看看