我要解决的问题描述如下:
“在mpp中添加了自定义文本域(如文本3),想在程序中通过oleDbDataAdapter读取该自定义域中的内容。”在“Microsoft Office Project 2003 数据参考”中有提到一个MSP_TEXT_FIELDS表用来保存自定义文本域的内容,其中有两个字段“TEXT_REF_UID“保存其所在任务的任务ID,“TEXT_VALUE”字段保存自定义文本域的值。我尝试了写了语句“select * from MSP_TEXT_FIELDS”,结果报错“指定的转换无效。”请问各位达人们,这个读取到底该怎么个弄法啊。先谢谢了

解决方案 »

  1.   

    应该不是的吧,我的代码如下:string cmd = "select * from MSP_TEXT_FIELDS";System.Data.OleDb.OleDbDataAdapter oleDbDataAdapterPlatform = new System.Data.OleDb.OleDbDataAdapter(cmd,this.oleDbConnection1);System.Data.DataSet ds = new DataSet();
    try
    {
      oleDbDataAdapterPlatform.Fill(this.dataSet);
    }
    catch(Exception err)
    {
      Console.Write(err.Message.ToString());
    }
      

  2.   

    刚刚贴错了
    感觉应该不是类型的问题吧,我的代码如下: string cmd = "select * from MSP_TEXT_FIELDS"; System.Data.OleDb.OleDbDataAdapter oleDbDataAdapterPlatform = new System.Data.OleDb.OleDbDataAdapter(cmd,this.oleDbConnection1); System.Data.DataSet ds = new DataSet(); 
    try 

      oleDbDataAdapterPlatform.Fill(ds); 

    catch(Exception err) 

      Console.Write(err.Message.ToString()); 
      

  3.   

    string cmd = "select * from MSP_TEXT_FIELDS";  
    这样写应该错吧,毕竟需要数据源,你的那个连接语句不知对否,你可以调试下到查询分析器中.
    一般要这样写,如excel文件
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
      

  4.   

    这样写应该是对的,因为oleDbDataAdapter的connection已经对应到正确的连接了。而且我调用非自定义的域是成功的。
    如:读取mpp中“资源名称”域时,select语句如下:“select ResourceUniqueID, ResourceType, ResourceName,ResourceNotes,ResourceNTAccount,ResourceStart,ResourceFinish FROM Resources”这个语句是可以成功读取出“资源名称”域中的全部数据的。。 
      

  5.   

    问题解决了。自定义文本域主要是用来保存三方面的内容:Resource、Task和Assignment。 
    因此,自定义文本域就相应的保存到Resource、Task和Assignment表中,作为这些表中的字段了。