一个Access数据库包含若干首诗歌,每首诗有content、author、title、description四个字段

using System;
using System.Data;
using System.Data.OleDb;
using System.Runtime.Serialization.Json;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Runtime.Serialization;
[DataContract]
struct Poem {
[DataMember]
public string content { get; set; }
[DataMember]
public string author { get; set; }
[DataMember]
public string title { get; set; }
[DataMember]
public string description { get; set; }
}
class Haha {
public static void Main() {
string url = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=C:\\Users\\weidiao\\Desktop\\data.mdb";
OleDbConnection con = new OleDbConnection(url);
con.Open();
OleDbCommand command = new OleDbCommand("select * from t_poetry", con);
OleDbDataReader reader = command.ExecuteReader();
Console.WriteLine(reader.FieldCount);
FileStream cout = new FileStream("poem.json", FileMode.Create);
List<Poem> li = new List<Poem>();
while (reader.Read()) {
Poem p = new Poem();
p.author = reader["d_author"].ToString();
p.content = reader["d_poetry"].ToString();
p.description = reader["d_intro"].ToString();
p.title = reader["d_title"].ToString();
li.Add(p);
}
String s = ObjectToJson(li);
byte[] bytes = Encoding.UTF8.GetBytes(s);
cout.Write(bytes, 0, bytes.Length);
cout.Close();
con.Close();
}
// 从一个对象信息生成Json串
public static string ObjectToJson(object obj) {
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
return Encoding.UTF8.GetString(dataBytes);
}
}

C#将Access数据库导出为JSON的更多相关文章

  1. Access数据库数据转换Table.Json

    使用WPF组件 xaml <Window x:Class="JsonConvert.MainWindow" xmlns="http://schemas.micros ...

  2. Windows 10中Oracle数据库导出到Access数据库(MDB)

    本篇博文简单介绍将Oracle数据库中表导出到Access数据库(主要是MDB格式)的方法.主要有三种,分别是PL/SQL.ESFDatabaseMigrationToolkit及ODBC. PL/S ...

  3. Access数据库导入到SQL Server 2005 Express中

    安装好SQL Server 2005 Express后,再安装SQL Server Management Studio Express CTP就可以很方便的使用控制台进行数据库的管理.但SQL Ser ...

  4. (转)将access数据库迁移到SQLserver的两种方法

    在实际项目使用中遇到的问题,将原文整理后以备后用. 原文地址(具体链接几次未知):http://www.jb51.net/article/41956.htm 方法1 使用ACCESS2007自带的数据 ...

  5. 如何在Asp.net中备份Access数据库?

    public   void   Create(   string   mdbPath   ) { if(   File.Exists(mdbPath)   )   //检查数据库是否已存在 { thr ...

  6. C# 读取 Access 数据库表的例子

    using System;using System.Data;using System.Data.OleDb;using System.Collections.Generic;using System ...

  7. 将ACCESS数据库迁移到SQLSERVER数据库

    原文:将ACCESS数据库迁移到SQLSERVER数据库 将ACCESS数据库迁移到SQLSERVER数据库 ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 ...

  8. ACCESS数据库增强器需求及介绍

    目前版本:ver1.0.0.2 现已支持cs文件浏览,高亮显示 针对如下图所示的access数据库,我想导出access数据库的所有或者部分表的表结构,还想对表进行封装,封装如下所示. using S ...

  9. access数据库表导入到oracle

    1.本机安装access数据库 25M左右2.创建ODBC数据源,要选择oracle C:\Windows\SysWOW64\odbcad32.exe 3.打开要导入的 .mdb文件 右键表--> ...

随机推荐

  1. Sublimetext3将空格转换为Tab

    最近在学习Python,从网上粘贴的代码很多缩进都是空格,这样就会导致代码执行的时候报错,因为Python是依靠缩进来判断代码层次的.我的编辑器是Sublime Text 3看了一下,原来转换成Tab ...

  2. 郑捷2017年电子工业出版社出版的图书《NLP汉语自然语言处理原理与实践》

    郑捷2017年电子工业出版社出版的图书<NLP汉语自然语言处理原理与实践> 第1章 中文语言的机器处理 1 1.1 历史回顾 2 1.1.1 从科幻到现实 2 1.1.2 早期的探索 3 ...

  3. 【SPOJ】【1825】Free Tour 2

    点分治 点分治的例题2(本题代码结果为TLE……) 强烈谴责卡时限QAQ,T了无数次啊无数次…… 不过在N次的静态查错中倒是加深了对点分治的理解……也算因祸得福吧(自我安慰一下) TLE后的改进:每棵 ...

  4. codeforces 560 C Gerald&#39;s Hexagon

    神精度--------这都能过.随便算就好了,根本不用操心 就是把六边形补全成三角形.然后去掉补的三个三角形,然后面积除以边长1的三角形的面积就可以.... #include<map> # ...

  5. Android中远程Service浅析

    上一篇文章中简单的写了一下关于Android中Service的两种启动方式,不过都是本地的服务,今天就简单的写下关于Android中远程Service的使用,学习之前先了解两个概念,AIDL( And ...

  6. zypper命令使用示例

    导读 Zypper是OpenSUSE和企业版SUSE中软件包管理器ZYpp的命令行接口. 主要用于:1.管理软件包:zypper可用来安装.删除.更新和查询本地或远程的软件包.2.管理仓库:zyppe ...

  7. wstring to wchar_t*

      If you want to convert from std::wstring to const WCHAR* (i.e. the returned pointer gives read-onl ...

  8. 部署项目Nginx+Tornado+Supervisor

    http://www.jianshu.com/p/9bebb99368ea Tornado Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻 ...

  9. 【nodejs】用express又做了份crud

    感觉crud是高级形式的hello world了. app代码: 'use strict'; var express=require('express'); var http=require('htt ...

  10. python多线程概念

    转自:http://www.cnblogs.com/fnng/p/3489321.html 在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制( ...