使用.net连接domino的尝试
导入包含Domino命名空间的dll:Interop.Domino.dll
安装notes客户端。
访问domino是由建立一个NotesSession对象开始的。所以第一个问题是NotesSession对象的初始化。NotesSession对象的Initialize(string password)方法,直观却有些让人费解,因为即使没有接触过domino的人也知道建立一个会话,需要的是用户名和密码,而这里的方法只有一个password参数。这里的道理不用深究,因为notes客户端会根据系统中的user.id文件找到用户名信息,而密码部分就是要验证的事情了。如果有做过domino开发的人,对这部分应该有更深的理解。
从domino数据文件中得到数据清单,并整理到DataTable中。
1 NotesSession ns = new NotesSession();
2 ns.Initialize("密码");
3 if (ns != null)
4 {
5 db = ns.GetDatabase("DOMINO服务器地址", "数据文件地址", false);
6 view = db.GetView("视图名");
7 NotesDocument doc = view.GetFirstDocument();
8 DataTable dt = new DataTable();
9 DataColumn dc = new DataColumn("列名1");
10 dt.Columns.Add(dc);
11 dc = new DataColumn("列名2");
12 dt.Columns.Add(dc);
13 while (doc != null)
14 {
15 DataRow dr = dt.NewRow();
16 Object[] oba = (Object[])doc.ColumnValues;
17 string colm1, colm2;
18 colm1 = oba[0].ToString();
19 colm2 = oba[1].ToString();
20 dr.BeginEdit();
21 dr["列名1"] = colm1 ;
22 dr["列名2"] = colm2 ;
23 dr.EndEdit();
24 dt.Rows.Add(dr);
25 doc = view.GetNextDocument(doc);
26 }
27 }
这里需要提到的是dynamic cast 运行期绑定的代码,需要做类型转化。