zoukankan      html  css  js  c++  java
  • C#将Access数据库导出为JSON

    一个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);
        }
    }
    
  • 相关阅读:
    注册表解锁
    Windows错误代码大全 2
    硬盘数据线的问题
    vs2010与C#4.0新特性
    (转载)C语言负数的移位运算
    (转载)看C语言编码转换负数的二进制表示方法
    (转载)C语言右移运算符的问题(特别当与取反运算符一起时)
    (转载)Qt中使用cout输出的方法
    (转载)QPainter的用法
    (转载)Qt计算MD5
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/6488870.html
Copyright © 2011-2022 走看看