瀏覽次數: 627316

  • 打開Client的表單,系統出現'System. ComponentModel.Design. ExceptionCollection'的例外錯誤時,該怎麼處理?
    一般是InfoDataSet無法啟動的原因,因此你可以打開此Client表單的Designer.cs(在該WinForm Project之下),通過尋找”InfoDataSet”功能找主檔DataSet的名稱,再找該DataSet.Active屬性(如idOrders.Active),找到後將Active設為False,然後存檔重新打開,如果還是無效,可以讓相對的Server Module重新Build一下,Client端也重新Build一下,退開VS重新進來應該就可以打開,如果是因為更新EEP2006版本所發生的問題,就須將整個Solution執行一次ReBuild,並執行一次InitEEP後,重新打開即可。



  • InfoDataSet重新Active,總是不能抓取InfoCommand所新增的欄位?
    可以用以下的步驟來檢查:
    1. VS2005中,Development Server關掉(右下工作列中找一下,如果有的話)
    2. 執行VS2005/TOOLS/UnloadAppDomains,因為在VS2005中該DLL有可被Active了,所以會Build不過或是被佔用,所以會Active到舊的,經過以上,重Build Server的dll,重新讓InfoDataSet.Active=False,再True,就可以了。




  • 如何根據Client的條件值,動態設定InfoCommand 的 where 條件值?
    可在Client端,使用InfoDataSet.SetWhere(String WhereString);



  • 自行寫SetWhere,能否用類似@p1的參數方式先設定,然後再傳值進去?
    可以使用SetWhere的另一個方法:SetWhere(String strWhere, ArrayList param)
    例如:
    SqlParameter parameter = new SqlParameter("Value", "abcde");
    ArrayList list = new ArrayList();
    list.Add(parameter); // 可以設定多組
    infoDataSet1.SetWhere("Order=@Value", list);




  • 如何實現Excel檔案轉入GridView?
    InfoDataSet與WebDataSource都有提供ReadFromXls方法,可以從Excel的格式文件中讀資料。ReadFromXls的方法有4個參數,ReadFromXls(string TableName,string FileName,int StartColumn,int StartRow),分別代表:table的名字(或者Index次序),xls的文件,起始行(平行橫),起始列(垂直列)等。
  • 在InfoDataSet中,因為有PacketRecord設定,如何判斷資料移動到最後一筆?
    可以使用這樣的方法實現抓下一批PacketRecord資料:
    bool flag = true;
    while(flag)
    {
    flag = infodataset.GetNextPacket();
    }
    如果已經到最後一筆,GetNextPacket會返回false。
  • 如何將DataSet的內容寫入xml檔案中?
    可通過如下方法實現:InfoDataSet1.RealDataSet.WriteXml(@"C:\\dataset.xml");
  • 使用InfoDataSet.ReadFromXls時,出現“System.NullReferenceException: DataTable is null…….”的錯誤?
    要使用ReadFromXls首先要確保InfoDataSet內的DataTable必須存在,如果DataTable不存在,可以通過InfoDataSet.RealDataSet.Tables.Add("CommandTable")來先新增一個DataTable來實現。
  • 如果資料是放在標準的DataSet中,如何透過infoDataSet轉出Excel?
    請參考下列範例:

    DataTable dt = dataset1.Tables[0].Clone();
    dt.Merge(dataset1.Tables[0]);
    Srvtools.InfoDataSet a = new Srvtools.InfoDataSet();
    a.RemoteName = "GLModule.cmdColDEF";
    a.RealDataSet.Tables.Add(dt);
    a.ToExcel(0, @"c:\a.xls");

    其中:a.RemoteName = "GLModule.cmdColDEF"; 這是借用的一個DataModule名稱,不是代表後端取資料的真正DataModule,因為InfoDataSet是一定要設定RemoteName的,只好借用GLModule.cmdColDEF 來使用。




  • 如何將Toexcel產生的xls的欄位抬頭改為中文?
    請注意下列事項:
    1) 目前要輸出的table,請設定他的D.D.(資料字典,放在系統Table: COLDEF中)
    2) 如果有Left join到其他的Table欄位者,可以將left Join欄位用AS命名,在原Table的D.D.中,可以定義此虛擬欄位來顯示該欄位的抬頭。
    3) 如果是View視圖Table的話,可以在D.D.的COLDEF表中增加一個以你的view的名稱的TableName,並將各欄位一一設定上即可。