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}\t 的学号是 {1}",reader.GetString(), reader.GetString());
Console.WriteLine(output);
}
reader.Close();
conn.Close();
}
}
} 但是发现编译过去了,但是却读不出数据来,而且有这样的提示:InvalidCastException。
我查了一下MSDN,发现这个出现的条件是指定的强制转换无效。然后发现要求:所检索的数据必须已经是字符串,所以我检查了一下数据库,把数据结构都改成了nvarchar,然后发现就可以了。真是经验啊。

SQLSERVER与C#中数据类型的对应关系的更多相关文章

  1. 数据库SQL Server与C#中数据类型的对应关系

    ylbtech- .NET-Basic:数据库SQL Server与C#中数据类型的对应关系 数据库SQL SServer与C#中数据类型的对应关系 1.A,返回顶部 数据库 C#程序 int int ...

  2. SQL SERVER与C#中数据类型的对应关系

    对应关系表 SQL Server2000 http://hovertree.com/menu/sqlserver/ C# CodeSmith 数据类型 取值范围 数据类型 取值范围 空值代替值 数据类 ...

  3. JDBC---java与数据库中数据类型的对应关系

    基础数据类型 Java 类型 SQL 类型 int 或 java.lang.Integer INTEGER long 或 java.lang.Long BIGINT short 或 java.lang ...

  4. 数据库中字段的数据类型与JAVA中数据类型的对应关系

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N ...

  5. Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

    Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...

  6. oracle中数据类型对应java类型

    地址: http://otndnld.Oracle.co.jp/document/products/oracle10g/102/doc_cd/Java.102/B19275-03/datacc.htm ...

  7. B-Tree索引在sqlserver和mysql中的应用

    在谈论数据库性能优化的时候,通常都会提到“索引”,但很多人其实并没有真正理解索引,也没有搞清楚索引为什么就能加快检索速度,以至于在实践中并不能很好的应用索引.事实上,索引是一种廉价而且十分有效的优化手 ...

  8. 解剖SQLSERVER 第三篇 数据类型的实现(译)

    解剖SQLSERVER 第三篇  数据类型的实现(译) http://improve.dk/implementing-data-types-in-orcamdf/ 实现对SQLSERVER数据类型的解 ...

  9. 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

    从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...

随机推荐

  1. android应用程序的优先级

    andorid系统为保障应用程序运行的流畅性,当内存资源比较匮乏的时候会杀死那些优先级比较低的进程 android进程的优先级如下图: 1.活动进程: 是指那些正在与用户进行交互的应用程序进程,这种组 ...

  2. mysql 索引优化

    http://blog.jobbole.com/87107/ http://www.phpben.com/?post=74 http://blogread.cn/it/article/4088?f=s ...

  3. UPDATE sql 优化

    一个网友说他的存储过程中有一段update sql,运行了15分钟还没出结果,需要优化一下 他把sql发给我 UPDATE TB_RESULT R SET R.VOTE_COUNT=NVL(( SEL ...

  4. web项目设计与开发——DBHelper

    学习web项目设计与开发主要是在上学期web程序开发的基础上添上了思想和更深的理解. 在学习之前,我们需要下载好相关的软件——MyEclipse以及配置文件JDK.tomcat.再添加除MyEclip ...

  5. 使用modelsim仿真DDR3时编译出错的解决方法

    Modelsim 10.1c release note sates as : Product Changes in 10.1c Release 10.1b introduced a new error ...

  6. Topself

    TopShelf简介 个人理解:开源.跨平台的服务框架.提供一种方式以控制台编写windows服务,与windows服务相比,目前只发现便于调试. 官网网站:http://docs.topshelf- ...

  7. C#迭代语句

    1,do while语句 do语句重复执行语句或者语句块,直到指定的表达式为false为止.循环体如果为单个语句,可以不放在{}内,如果不是,那么必须放在{}内.如下面的代码 Codeint i=0; ...

  8. Linux操作系统安装Nvidia显卡驱动

    一直以来,Linux分支系统使用过程中都有驱动适配麻烦,完全适配的驱动也不多.对于Nvidia显卡而言,一般Linux各分支操作系统虽然提供了N卡开源驱动工程Nouveau,但是性能上还是有待提高.下 ...

  9. MVC中实现部分内容异步加载

    MVC中实现部分内容异步加载 action中定义一个得到结果集的方法 public ActionResult GetItemTree(string title, int itemid, int? pa ...

  10. JavaScript高级程序设计(二):在HTML中使用JavaScript

    一.使用<script>元素 1.<script>元素定义了6个属性: async:可选.表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本 ...