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,然后发现就可以了。真是经验啊。
  • 相关阅读:
    【二十五】cookie与session学习总结
    【二十四】使用mysqli扩展类批量执行多条sql语句
    【二十三】php之预定义超全局变量
    【二十二】mysqli事务处理与预处理总结
    【二十一】基于mysqli的表格数据练习
    【二十】mysqli基于面向过程与面向对象的编程
    为什么所有浏览器的userAgent都带Mozilla
    如何快速的搜索自己想要的资料
    从汇编看c++成员函数指针(三)
    从汇编看c++中指向成员变量的指针(二)
  • 原文地址:https://www.cnblogs.com/zzlp/p/3248468.html
Copyright © 2011-2022 走看看