在Access中只有10中数据类型,其中一种对应String的 数据类型是 文本 ,但是SQL Server中的数据类型有多种:char,nchar,nvarchar,varchar,text,ntext。如下图:

那它们之间有什么区别呢,在Access里面怎么可以用吗?带着这些疑问我做了实验。

1、在Access中用这些数据类型创建表

public void Create()
{
string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\74390440_69_20081029.mdb;Persist Security Info=False";
string query = "CREATE TABLE Test(t1 char(10),t2 nchar(10),t3 nvarchar(50),t4 varchar(50),t5 ntext,t6 text)";
OleDbHelper.ExecuteNonQuery(connectString, CommandType.Text, query, null);
}

居然用这样的SQL语句"CREATE TABLE Test(t1 char(10),t2 nchar(10),t3 nvarchar(50),t4 varchar(50),t5 ntext,t6 text)"创建成功了!

在char,nchar,nvarchar,varchar这四个类型中,所创建的都是一样,都是文本类型。text与ntext创建成备注类型了。

2、Access里面填入数据导入到相同的SQL Server数据表中

public void Insert()
{
string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\74390440_69_20081029.mdb;Persist Security Info=False";
string query = "select * from Test";
DataSet ds = new DataSet();
OleDbConnection connA = new OleDbConnection(connectString);
connA.Open();
OleDbDataAdapter oda = new OleDbDataAdapter(query, connA);
oda.Fill(ds);
connA.Close();
SqlConnection conn = new SqlConnection("server=.;database=NBBSImport;uid=sa;pwd=;");
conn.Open();
SqlBulkCopy sbc = new SqlBulkCopy(conn);
sbc.DestinationTableName ="Test";

//将数据集合和目标服务器的字段对应
for (int q = 0; q < ds.Tables[0].Columns.Count; q++)
{
sbc.ColumnMappings.Add(ds.Tables[0].Columns[q].ColumnName, ds.Tables[0].Columns[q].ColumnName);
}
try
{
sbc.WriteToServer(ds.Tables[0]);
}
catch(Exception ex)
{
throw;
}

}

很不幸,结果出错了,

找来了数据类型的对应关系:

访问类型名称

数据库数据类型

OLEDB 类型

.NET 框架类型

成员名称

文本

VarWChar

DBTYPE _ WSTR

System.String

OleDbType.VarWChar

备忘录

LongVarWCha R

DBTYPE _ WSTR

System.String

OleDbType.LongVarWChar

字节数:

UnsignedTinyInt

DBTYPE _ UI 1

System.Byte

OleDbType.UnsignedTinyInt

是 / 否

Boolean

DBTYPE_BOOL

System.Boolean

OleDbType.Boolean

日期 / 时间

DateTime

DBTYPE _ DATE

System.DateTime

OleDbType.date

货币

十进制

DBTYPE_NUMERIC

System.Decimal

OleDbType.numeric

十进制数:

十进制

DBTYPE_NUMERIC

System.Decimal

OleDbType.numeric

双数:

DBTYPE_R8

System.Double

OleDbType.Double

Autonumber (复制 ID)

GUID

DBTYPE_GUID

System.Guid

OleDbType.guid

复制 (ID) 号:

GUID

DBTYPE_GUID

System.Guid

OleDbType.guid

Autonumber (长整型)

整数

DBTYPE_I4

System.Int 32

OleDbType.integer

数量: (长整型)

整数

DBTYPE_I4

System.Int 32

OleDbType.integer

OLE 对象

LongVarBinary

DBTYPE_BYTES

数组
System.Byte

OleDbType.LongVarBinary

单个数字:

单个

DBTYPE_R4

System.Single

OleDbType.single

整型数:

SmallInt

DBTYPE_I2

System.Int 16

OleDbType.SmallInt

二进制

VarBinary *

DBTYPE_BYTES

数组
System.Byte

OleDbType.binary

超链接

VarWChar

DBTYPE _ WSTR

System.String

OleDbType.VarWChar

原来从SQL Server中的char类型到Access大小变了,那么再从Access导入到SQL Server就会出错了。

3、如果把SQL Server中的char,nchar类型的长度大小变为20,这样导入就没有错了。如

这次的数据类型小研究到此结束,这个给新手区的首页浪费资源了。呵呵.........

转载于:https://www.cnblogs.com/stonespawn/archive/2008/10/29/1321873.html

数据类型的小小研究:Access与SQL Server的数据类型相关推荐

  1. C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)

    C#连接4种类型数据库(Access.SQL Server.Oracle.MySQL) 1.C#连接连接Access using System.Data; using System.Data.OleD ...

  2. ACCESS转SQL SERVER的经验

    如何把ACCESS转成SQL数据库-access转sql软件 access转sql软件 软件简介: CooSel2.0 CreateSQL V1.05 档案包含 ASP 和 Exe 两个版本 Asp版 ...

  3. 在Access和 SQL Server中通配符的应用方法

    [转自http://www.zylj.com/article/xgrj/rjyy/1617.html] Access和 SQL Server是企业中常用的数据管理和应用的平台,无论使用那种管理平台,对 ...

  4. Top 10 steps to optimize data access in SQL Server

    2009年04月28日 Top 10 steps to optimize data access in SQL Server: Part I (use indexing) 2009年06月01日 To ...

  5. access labsql 出错_一段由ACCESS转为SQL SERVER后出现的CINT错误

    你的位置: 问答吧 -> 网络编程 -> 问题详情 一段由ACCESS转为SQL SERVER后出现的CINT错误 Public Function getLevel (User_List, ...

  6. Access和sql server的语法区别

    Access和sql server的语法区别 一.有区别的函数及解决方案  以下所示的解决方案中的函数定义在untDataBase单元中TAdoConn类的方法中. 序号 简述 Access语法 Sq ...

  7. Sql Server之数据类型详解

      数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server中支持多种数据类型,包括字符类型.数值类型以及日期类型等.数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为 ...

  8. SQL Server常见数据类型介绍

    数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅 Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符 ...

  9. SQL Server的数据类型

    每种语法都有属于自己的数据类型,数据类型也分很多种.今天我就来好好说说SQL Server的数据类型. SQL Server包含了Character字符串.Unicode字符串.Binary类型.Nu ...

最新文章

  1. python括号匹配算法_使用Python的栈实现括号匹配算法
  2. angular $resource参数占位符释疑
  3. mysql数据库密码错误_MySQL数据库经典错误六 数据库密码忘记的问题
  4. 链表node中保存的是什么_Redis源码解析一 --链表结构
  5. 查看环境变量有无配置成功等命令操作
  6. MAC OS上将项目提交到github
  7. 【codevs1073】家族,胡写并查集
  8. go语言基础之不同作用域同名变量
  9. Oracle的distinct关键字
  10. Financial Terminology - Shares, Stock, Equity,Security
  11. 总结CMS常见面试题
  12. 如何在Windows 10上安装Python
  13. 谈谈物联网产业4G转型中的隐忧与应对
  14. 数源思维完成目标设定
  15. 视频教程-【深入理解计算机网络】入门计算机网络基础视频课程(下)-计算机网络
  16. osx86 10.4.3 BF1118 的界面
  17. gif制作动图超简单,手把手教会用图片做gif动图
  18. 周易六十四卦——比卦
  19. 使用CS发送钓鱼邮件
  20. 2022年9月份前端女生工作总结

热门文章

  1. 毕啸南专栏 | 对话李开复:AI科学家的转型之路
  2. 李开复:2018中国最大AI红利?是政策
  3. 【DP】【单调队列】【NOI2005】瑰丽华尔兹
  4. YUV格式文件转RGB格式
  5. 性能调优之综合篇 - Linux系统性能监控和故障排查利器Sysdig
  6. where,having与 group by连用的区别
  7. practice:如何使用2008R2上的AD管理中心
  8. java.sql.SQLException
  9. 【LeetCode题解】二叉树的遍历
  10. nagios 主机报警别名修改