惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
月光博客
月光博客
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
Vercel News
Vercel News
量子位
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
腾讯CDC
有赞技术团队
有赞技术团队

博客园 - ymworkroom

命令行在银河麒麟的达梦数据库中创建新的数据库 Python学习——Ai+streamlit实现Ai伴侣(练习流式输出) Python中包的导入 Python中__name__与__all__两个特殊变量的作用 Python中模块导入方式 国内安装Claude方案 连接mysql8.0时报:KeyNotFoundException: 给定关键字不在字典中 vscode中运行的vue项目,vscode关闭后仍然运行,如何停止 [INS-30131] 执行安装程序验证所需的初始设置失败 Java中CornExpression说明 java项目开发常用配置文件模板 oracle数据库导入dmp文件,两种方法 Oracle dmp文件导入(还原)到不同的表空间和不同的用户下 pdf.js在IIS中配置使用笔记 禁止达梦数据库中not null字段插入空字符串 错误:java.lang.NoClassDefFoundError: org/jaxen/JaxenException 服务器级的urn筛选器无效:筛选器必须为空,或服务器属性必须等于实际的服务器名称处理方法 oracle下安装logminer笔记 .net导出图片到Excel .net获取网络图片 Lotus Notes连接Domino服务器时出错 配置Mysql远程访问 mysql Access denied for user root@localhost错误处理备忘 MsSql判断表是否有自增标识 .net用NPOI生成Word表格
.net读取Lotus Domino文件数据库并写入DataTable中
ymworkroom · 2017-04-27 · via 博客园 - ymworkroom

上一篇文章是简单的读取并输出,这里稍微加深一点,将读取到的内容按字段存入DataTable中。

 1 StringBuilder sb = new StringBuilder();
 2             NotesSession ns = new NotesSession();
 3             //ns.Initialize("test1234");
 4             ns.Initialize();
 5             if (ns == null)
 6             {
 7                 MessageBox.Show("未能初始化");
 8                 return;
 9             }
10             //NotesDatabase db = ns.GetDatabase("", @"names.nsf", false);
11             NotesDatabase db = ns.GetDatabase("", @"todo/120006.nsf", false);
12             if (db == null)
13             {
14                 MessageBox.Show("未能初始化数据库");
15                 return;
16             }
17             NotesView view = db.GetView(@"V5\01.待办文件");
18             if (view == null) return;
19             DataTable dt = new DataTable();
20             object[] cols = view.ColumnNames;
21             Dictionary<int, object> dic = new Dictionary<int, object>();
22             if (cols != null)
23             {
24                 int ix = 0;
25                 foreach (object obj in cols)
26                 {
27                     dic.Add(ix, obj);
28                     if (obj != null)
29                     {
30                         sb.Append(string.Format("{0};", obj));
31                         if (!dt.Columns.Contains(obj.ToString()))
32                         {
33                             DataColumn dc = new DataColumn(obj.ToString());
34                             dt.Columns.Add(dc);
35                         }
36                         
37                     }
38                     ix++;
39                 }
40             }
41             NotesDocument doc = view.GetFirstDocument();
42             while (doc != null)
43             {
44                 object[] objs = (object[])doc.ColumnValues;
45                 if (objs == null) return;
46                 int ix = 0;
47                 DataRow dr = dt.NewRow();
48                 foreach (object obj in objs)
49                 {
50                     if (obj == null) continue;
51                     KeyValuePair<int, object> kv = dic.FirstOrDefault(m => m.Key == ix);
52                     Type tp = obj.GetType();
53                     if (tp.Name.Contains("Object[]"))
54                     {
55                         object[] nobjs = (object[])obj;
56                         List<string> list = new List<string>();
57                         foreach (var nobj in nobjs)
58                         {
59                             sb.Append(string.Format("{0}\r\n", nobj));
60                             list.Add(string.Format("{0}",nobj));
61                         }
62                         dr[kv.Value.ToString()] = string.Join("|", list);
63                     }
64                     else
65                     {
66                         sb.Append(string.Format("{0}\r\n", obj));
67                         dr[kv.Value.ToString()] = obj;
68                     }
69                     ix++;
70                 }
71                 dt.Rows.Add(dr);
72                 doc = view.GetNextDocument(doc);
73             }