ADO.NET
DevExpressã®Knowledge Baseãè¦ã¦ãããã以ä¸ã®å 容ãããã¾ããã Can the grid display data from several data tables in a single grid view? http://www.devexpress.com/Support/Center/KB/p/A1232.aspx å 容ã¯ãè¤æ°ã®DataTableã®å 容ãä¸ã¤ã®ã°ãªãâ¦
ç¥ãåãã«èãããã®ã§ãã¤ãã§ã«ã¡ã¢ã¡ã¢ã DataTableãæ±ã£ã¦ããã¨ãããã½ã¼ãå¦çãè¡ã£ãçµæã UIãªããã¼ã¿ãã¼ã¹ãªãã«ç»é²ãããã¨ãããã¾ãããã®éãåã®å¤ã«æ°å¤ãå ¥ã£ã¦ãããã ããã©ã åã®åãæååã§ãããã¨ããçµæ§ãã£ãããã¾ãã â¦
以åãåãå ¥éè¨ã«ã¦app.configãã¡ã¤ã«ã®ä¸èº«ãæå·åããæ¹æ³ã«ã¤ã㦠è¨è¿°ãã¦ãã¾ããã ADO.NETå ¥éè¨-003 (æ¥ç¶æååã®æå·å(aspnet_regiis)) http://d.hatena.ne.jp/gsf_zero1/20070812/p3 ããè¦ãããæå·åããå¾ã«å¾©å·åããæ¹æ³ã«å ¨ç¶è§¦ãã¦â¦
以ä¸ãèªåç¨ã®ã¡ã¢ã§ãã SQL Server Compact Edition 3.5ãå©ç¨ãããã¨æã£ã¦ãADO.NETãã DbProviderFactoryçµç±ã§æ¥ç¶ãããã¨æã£ããã¨ã©ã¼ãçºçãã¾ããã ã©ãããSystem.Data.SqlServerCeã¨ãããããã¤ãåã¯åå¨ããªã模æ§ã åã¯ãã®ååã§ãâ¦
ååã«å¼ãç¶ããå¤ãã種ã§ä»åº¦ã¯ããã¹ããã¡ã¤ã«ã«æ¥ç¶ãã¦ã¿ã¾ãã è¦é ã¨ãã¦ã¯ãExcelã«æ¥ç¶ããå ´åã¨ã»ã¼åãã§ãã å©ç¨ãããããã¤ãã¼ã¯ä»¥ä¸ã®ãã®ã¨ãªãã¾ãã System.Data.OleDb æ¥ç¶æååã¯ä»¥ä¸ã®ãããªãã¿ã¼ã³ãã¨ãã¾ãã Provider=Microâ¦
é常ãADO.NETã§å¦çãæ¸ãå ´åã¯SQLServerãªãOracleãªãã®ãã¼ã¿ãã¼ã¹ã 対象ã¨ãã¦å¦çãè¡ãã®ã§ãããExcelã«ãæ¥ç¶ãããã¨ãåºæ¥ã¾ãã Excelã®å ´åãå®éã¯ä»ã®ã©ã¤ãã©ãªãªã©ãå©ç¨ãã¦å¦çãããã®ãå¤ãã§ãã ç¥ã£ã¦ããã¨ä¾¿å©ã§ãã å©ç¨ããâ¦
é常ã«è峿·±ãå å®¹ãæ²ç¤ºæ¿ã«æç¨¿ããã¦ããã®ã§ã¡ã¢ã¡ã¢ã ç¹å®ã®æ¡ä»¶ä¸ã«ããã¦ãDataTable.Selectãã¡ããã¨åä½ãã¦ããªãã¨ããä»¶ã§ãã DataTable.Select ã®çµæããããã http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/54â¦
次ã¯ããã¼ã¿ãã¼ãã«ã®ã³ãã¼æ©è½ã«ã¤ãã¦ã§ãã ããããããå©ç¨ããã®ã§ã¡ã¢ã¡ã¢ã ãã¼ã¿ãã¼ãã«ã®ã³ãã¼æ©è½ã«ã¯ã以ä¸ã®2種é¡ãããã¾ãã ã¹ãã¼ãã®ã¿ã®ã³ãã¼ ã¹ãã¼ãã¨ãã¼ã¿ã®ã³ãã¼ ã¹ãã¼ãã®ã¿ã®ã³ãã¼ã«ã¯ã以ä¸ã®ã¡ã½ãããå©ç¨ãã¾ãã â¦
ç¶ãã¦ãSelectã¡ã½ããã§ãã ãã®ã¡ã½ããã¯ãç¹å®ã®æ¡ä»¶ã«åè´ããè¡ãæ½åºããéã«å©ç¨ãã¾ãã ãã¾ã«ä½¿ããã¨ãããã®ã§ãä¸å¿ã¡ã¢ã§ãã ãããããã®Selectã¡ã½ããã¯DataTableã®è¡æ°ãå¤ãå ´åã«ã¯ å°ãé ãã®ã§ããã¾ãä¹±ç¨ã¯ç¦ç©ã§ããã¨ã¯ãããâ¦
éå»ã®åã¯ä»¥ä¸ã®ãªã³ã¯ããè¦ãã¾ãã ADO.NETå ¥éè¨-014 (System.Data.DataTableã¤ãã¦(01) (DataTable, DataRow, DataColumn)) http://d.hatena.ne.jp/gsf_zero1/20070920/p1 ã¦ããï¼å¹´ä½ã»ã£ããããã¦ã¾ããï½ï½ ããªãã ããµãã«DataTableã®å¦çãæ¸â¦
.NET Framework 3.5ãããSystem.Data.DataSetExtensionsåå空éã«ä»¥ä¸ã®ã¯ã©ã¹ã追å ããã¦ãã¾ãã System.Data.DataRowComparer ååã®éããDataRowç¨ã®Comparerã§ãã ããã¾ã§ãDataRowãæ¯è¼ããå ´åã¯ååã®å¤ãå ¨ã¦æåã§è¦ã¦ä¸è´ãä¸ä¸è´ãå¦ããâ¦
ååã«å¼ãç¶ããä»åã¯DataRowã«ç¨æãããæ¡å¼µã¡ã½ããã«ã¤ãã¦è¨è¿°ãã¾ãã .NET Framework 3.5ã«ãªã£ã¦ãDataRowã«ä»¥ä¸ã®æ¡å¼µã¡ã½ãããç¨æããã¾ããã * Field * SetField å°ããããã®æ¡å¼µã¡ã½ããã¯ãSystem.Data.DataRowExtensionsã¯ã©ã¹ã«å®ç¾©ãâ¦
.NET Framework 3.5ã«ãªã£ã¦ãDataTableã«ä»¥ä¸ã®æ¡å¼µã¡ã½ãããç¨æããã¾ããã AsDataView AsEnumerable CopyToDataTable å°ããããã®æ¡å¼µã¡ã½ããã¯ãSystem.Data.DataTableExtensionsã¯ã©ã¹ã«å®ç¾©ããã¦ãã¾ãã å³å¯ã«ã¯CopyToDataTableã¡ã½ããã¯IEnuâ¦
以ä¸ãã¡ã¢æ¸ããDataTable, DataSetã«ã¯ãå¥ã®DataTable, DataSetã®ãã¼ã¿ãåãè¾¼ããMergeã¡ã½ãããããã¾ãã ãã®éãå ã®ãã¼ãã«ã«ãã£ãè¡ã®RowStateã¯ã©ããªããã¨ããã¨ããã®ã¾ã¾å¼ãç¶ããã¾ããã¤ã¾ããå ãAddedã®å ´åã¯Addedã§ãDeletedã®å ´â¦
ãã¼ã¿ãæ±ã£ã¦ããã¨ããã¾ã«å¦çä¸éè¤ãã¼ã¿ãåãé¤ãããããå¿ è¦ããã£ããã¾ãã SQLã§ãã¼ã¿ãåå¾ããå ´åã¯ãäºåã«distinctãããªã©ã§ãã¾ãããå é¨ã§ä½æãããã¼ã¿ã® å ´åã¯ãããããã¾ããã ãããªæãDataViewã使ãã¨æ¥½ãªå ´åãããã¾ãâ¦
ç´ã§SQLãè¨è¿°ãã¦ãã¼ã¿ãæ¤ç´¢ãããããå ´åã¯ãé常以ä¸ã®æé ãè¸ã¿ã¾ãã ã³ãã³ããªãã¸ã§ã¯ãã使 ã³ãã³ãã«SQLãè¨å® ã³ãã³ãã«ãã©ã¡ã¼ã¿ãè¨å® å®è¡ ããããã®ããSQLã¯éããã©æå®ãããã©ã¡ã¼ã¿ãªãã¸ã§ã¯ãã¯åããã®ãåå©ç¨ããå ´åã§â¦
ADO.NETã«ã¦DbProviderFactoryãªãã¸ã§ã¯ããç¨ãã¦ãå¦çãè¡ãªãå ´åãã¾ãDbProviderFactoriesãã 該å½ããInvariantNameãæã¤ãã¼ã¿ãããã¤ããã¡ã¯ããªãªãã¸ã§ã¯ããåå¾ãã¾ãã ã³ã¼ãã§ããã¨ä»¥ä¸ã®ãããªæãã§ããï¼ãªã©ã¯ã«ç¨ã®ãã¼ã¿ãããâ¦
ADO.NETã«ã¦ä¸æ¦Deletedã¨ãã¼ã¯ãããè¡ãããã¼ã¿ãåå¾ãããã¨ããã¨é常ã¨ã©ã¼ãã§ã¾ãã ãããåé¿ããããã«ã¯ä»¥ä¸ã®ããã«ãã¾ãã ã«ã©ã ã®å¤ãåå¾ããéã«DataRowVersion.Originalãæå®ããã è¦ã¯åé¤åã®å¤ã¨ãã¦åå¾ããããã«ããã¨ããäºâ¦
ä»åãããæ°åã«åãã¦System.Data.DataTableã¯ã©ã¹ã«ã¤ã㦠è¨è¿°ãã¦ããã¾ãã æ¢ã«ãã£ã¨åãããæé»çã«ä½¿ç¨ããã¦ãã¦ããã¯ã©ã¹ã§ããããã¯ãADO.NETãåå¼·ããä¸ã§ ããããªãã¯ã©ã¹ã¨ãªãã¾ãã®ã§ãä¸ã¤ä¸ã¤ã¡ã½ããã使ç¨ãã¦ã¿ããã¨æãã¾ããâ¦
ãã¼ã¿ãã¼ãã«ã使ç¨ããä¸ã§ãè¡ã®ç¶æ ã®é·ç§»ã¯ã¨ã¦ã大äºãªæ¦å¿µã¨ãªãã¾ãã DataAdapterã®Updateã¡ã½ããã¯ãä¸è¨ã®ç¶æ ãå ã«ãã®è¡ã®ãã¼ã¿ãInsertããã®ãUpdateããã®ã Deleteããã®ããæ±ºå®ãã¾ãã 以ä¸ãDataRowStateã«ã¤ãã¦ã®ç°¡åãªãµã³ãã«â¦
DataSetã«ã¯ããªã¬ã¼ã·ã§ã³ãè¨å®ãããã¨ãã§ãã¾ãã ãªã¬ã¼ã·ã§ã³ãè¨å®ããã¨ããã¼ã¿ãã¼ã¹ã®ããã«ç´ä»ããã¼ã¿ãåå¾ãããã親ã®è¡ãåå¾ãããåºæ¥ãããã«ãªãã¾ãã ããæ¹ã¯ç°¡åã§ããã¼ã¿ã»ãããªãã¸ã§ã¯ãã®Relationsããããã£ã«å¯¾ãã¦è¿½å â¦
ååã®è¨äº http://d.hatena.ne.jp/gsf_zero1/20070906/p2 ã«ã¦ããã¼ã¿ã»ããã«XMLãã¼ã¿ãæµãè¾¼ãã®ã¯ ãã£ã¦ããã®ã§ãããä¸å¿å¥è¨äºã«ãã¾ããã DataSetãDataTableã«ã¯XMLãããã¼ã¿ãåå¾ããã¡ã½ãããç¨æããã¦ãã¾ãã ã¹ãã¼ããèªã¿è¾¼ãã«ã¯â¦
åããåµãã¾ããã»ã»ã»ã»ã ã³ãã¼ããã¦ããã®ã«æ°ã¥ãã®ã«åãæéããããã¾ããã§ãï½ DataTable.GetChanges() (From çªéããã°ã©ãã¼ã®ç¬ãè¨ãã) http://blog.livedoor.jp/gushwell/archives/10304816.html
ååã¯ãæåã§å夿´ç³»ã®ã³ãã³ããªãã¸ã§ã¯ãã使ãã¦ãã¾ããããADO.NETã«ã¯CommandBuilderã¨ãã ã¯ã©ã¹ãåå¨ãã¦ãããããã使ç¨ãããã¨ã«ãã以ä¸ã®å¹æãå¾ããã¨ãåºæ¥ã¾ãã SelectCommandã®ã¿ã使ãããã以å¤ã®å¤æ´ç³»ã®ã³ãã³ãã«ã¤ãã¦â¦
å¼ãç¶ãããã¼ã¿ã¢ããã¿ã«é¢ãã¦ã®è¨äºã§ãã ä»åã¯ã夿´ç³»ã®å¦çãè¡ãªã£ã¦ã¿ã¾ãã 夿´ç³»ã¨ãªãã¨ãInsert, Update, Deleteã®ï¼ã¤ãåå¨ããã®ã§ããã ããããSelectã®å ´åã¨åãããã³ãã³ããªãã¸ã§ã¯ãã使ãããã¼ã¿ã¢ããã¿ã«ã»ãããã¾ããâ¦
DataAdapterã¯ã©ã¹ã¯ãADO.NETã«ããã¦æ¥ç¶åãªãã¸ã§ã¯ã(DataReaderç)ã¨éæ¥ç¶åãªãã¸ã§ã¯ã(DataSet, DataTable) ã®æ©æ¸¡ããè¡ãªãçºã®ã¯ã©ã¹ã§ãã ãã®ã¯ã©ã¹ãå©ç¨ããã¨ãã¯ã¨ãªã®çµæããã¼ã¿ãã¼ãã«åã³ãã¼ã¿ã»ããã«ç°¡åã«åãè¾¼ããããã«ãªâ¦
System.Transactions.TransactionScopeã¯ã©ã¹ãå©ç¨ããéã«ããã©ã³ã¶ã¯ã·ã§ã³ã®ã¿ã¤ã ã¢ã¦ããæå®ããã«ã¯ 以ä¸ã®æ¹æ³ãããã¾ãã machine.configã«æå®ã ã³ã³ã¹ãã©ã¯ã¿ã«ã¦ãæå®ã ä»åã¯ãï¼ã®æ¹æ³ã§ãã£ã¦ã¿ã¾ãã æå®ããå¤ã¯ãTimeSpanãªãã¸ã§â¦
以ä¸ã®ãããªç¶æ³ãããã¨ãã¾ããâãããã¼ã¿ãã¼ãã«Aã¨ãã¼ã¿ãã¼ãã«Bãåå¨ãã¦ããããã®ï¼ã¤ã®ãã¼ã¿ãã¼ãã«ã¯ã©ã¡ããåãåã§ããã ãã®éããã¼ãã«Aãããã¼ãã«Bã¸ç¹å®ã®æ¡ä»¶ã«ãããããè¡ãã¼ã¿(DataRow)ãç§»è¡ããããâ ã¤ã¾ãã以ä¸ã®ããâ¦
Oracle(10gR2)ã§TransactionScopeãå©ç¨ããéã«ã以ä¸ã®ã¨ã©ã¼ãã§ãå ´åãããã¾ãã "oramts.dllãè¦ã¤ããã¾ããã" ãã®ã¨ã©ã¼ãåºãå ´åã以ä¸ã®ç¹ãçã£ã¦ã¿ã¦ãã ããã ãã·ã³ã«ãOracle Services For Microsoft Transaction Service (OraMTS)ãã¤â¦
SQL Serverã«é¢ãã¦ã®ã¿ã®ããæ¹ã§ãããSQL Serverã®å ´åã¯ãã³ãã³ãã®éåæå®è¡ã®ä»çµã¿ãSqlCommandãªãã¸ã§ã¯ãã« ç¨æããã¦ãã¾ããSystem.Data.OracleClientçã«ã¯ãåãæ©è½ã¯åå¨ãã¾ããã®ã§ã注æãã éåæå®è¡ã®ããæ¹ã¯ãdelegateã®éåæâ¦