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);
        }
    }
    
  • 相关阅读:
    前端教程-3.调试工具(上)
    常用跨域方法实践(二)
    常用跨域方法实践(一)
    移动web问题小结
    Promise实现原理
    H5页面的跨webview预拉取数据尝试
    【译】编写高性能JavaScript
    校招社招必备核心前端面试问题与详细解答
    高性能极致用户体验前端开发实战
    http请求代理proxy-ajax
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/6488870.html
Copyright © 2011-2022 走看看