DataExtensions.cs 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264
  1. using Dm;
  2. using Kdbndp;
  3. using Microsoft.Data.Sqlite;
  4. using MySqlConnector;
  5. using Npgsql;
  6. using Oracle.ManagedDataAccess.Client;
  7. using System;
  8. using System.Collections;
  9. using System.Collections.Generic;
  10. using System.Data;
  11. using Microsoft.Data.SqlClient;
  12. using System.Linq;
  13. using System.Threading.Tasks;
  14. using System.Data.OscarClient;
  15. using System.Data.OleDb;
  16. namespace SqlSugar
  17. {
  18. /// <summary>
  19. /// 数据填充器
  20. /// </summary>
  21. public class SqlDataAdapter : IDataAdapter
  22. {
  23. private SqlCommand command;
  24. private string sql;
  25. private SqlConnection _sqlConnection;
  26. /// <summary>
  27. /// SqlDataAdapter
  28. /// </summary>
  29. /// <param name="command"></param>
  30. public SqlDataAdapter(SqlCommand command)
  31. {
  32. this.command = command;
  33. }
  34. public SqlDataAdapter()
  35. {
  36. }
  37. /// <summary>
  38. /// SqlDataAdapter
  39. /// </summary>
  40. /// <param name="sql"></param>
  41. /// <param name="_sqlConnection"></param>
  42. public SqlDataAdapter(string sql, SqlConnection _sqlConnection)
  43. {
  44. this.sql = sql;
  45. this._sqlConnection = _sqlConnection;
  46. }
  47. /// <summary>
  48. /// SelectCommand
  49. /// </summary>
  50. public SqlCommand SelectCommand
  51. {
  52. get
  53. {
  54. if (this.command == null)
  55. {
  56. this.command = new SqlCommand(this.sql, this._sqlConnection);
  57. }
  58. return this.command;
  59. }
  60. set
  61. {
  62. this.command = value;
  63. }
  64. }
  65. /// <summary>
  66. /// Fill
  67. /// </summary>
  68. /// <param name="dt"></param>
  69. public void Fill(DataTable dt)
  70. {
  71. if (dt == null)
  72. {
  73. dt = new DataTable();
  74. }
  75. var columns = dt.Columns;
  76. var rows = dt.Rows;
  77. using (SqlDataReader dr = command.ExecuteReader())
  78. {
  79. for (int i = 0; i < dr.FieldCount; i++)
  80. {
  81. string name = dr.GetName(i).Trim();
  82. if (!columns.Contains(name))
  83. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  84. else
  85. {
  86. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  87. }
  88. }
  89. while (dr.Read())
  90. {
  91. DataRow daRow = dt.NewRow();
  92. for (int i = 0; i < columns.Count; i++)
  93. {
  94. daRow[columns[i].ColumnName] = dr.GetValue(i);
  95. }
  96. dt.Rows.Add(daRow);
  97. }
  98. }
  99. dt.AcceptChanges();
  100. }
  101. /// <summary>
  102. /// Fill
  103. /// </summary>
  104. /// <param name="ds"></param>
  105. public void Fill(DataSet ds)
  106. {
  107. if (ds == null)
  108. {
  109. ds = new DataSet();
  110. }
  111. using (SqlDataReader dr = command.ExecuteReader())
  112. {
  113. do
  114. {
  115. var dt = new DataTable();
  116. var columns = dt.Columns;
  117. var rows = dt.Rows;
  118. for (int i = 0; i < dr.FieldCount; i++)
  119. {
  120. string name = dr.GetName(i).Trim();
  121. if (!columns.Contains(name))
  122. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  123. else
  124. {
  125. columns.Add(new DataColumn(name+i, dr.GetFieldType(i)));
  126. }
  127. }
  128. while (dr.Read())
  129. {
  130. DataRow daRow = dt.NewRow();
  131. for (int i = 0; i < columns.Count; i++)
  132. {
  133. daRow[columns[i].ColumnName] = dr.GetValue(i);
  134. }
  135. dt.Rows.Add(daRow);
  136. }
  137. dt.AcceptChanges();
  138. ds.Tables.Add(dt);
  139. } while (dr.NextResult());
  140. }
  141. }
  142. }
  143. /// <summary>
  144. /// 数据填充器
  145. /// </summary>
  146. public class MySqlDataAdapter : IDataAdapter
  147. {
  148. private MySqlCommand command;
  149. private string sql;
  150. private MySqlConnection _sqlConnection;
  151. /// <summary>
  152. /// SqlDataAdapter
  153. /// </summary>
  154. /// <param name="command"></param>
  155. public MySqlDataAdapter(MySqlCommand command)
  156. {
  157. this.command = command;
  158. }
  159. public MySqlDataAdapter()
  160. {
  161. }
  162. /// <summary>
  163. /// SqlDataAdapter
  164. /// </summary>
  165. /// <param name="sql"></param>
  166. /// <param name="_sqlConnection"></param>
  167. public MySqlDataAdapter(string sql, MySqlConnection _sqlConnection)
  168. {
  169. this.sql = sql;
  170. this._sqlConnection = _sqlConnection;
  171. }
  172. /// <summary>
  173. /// SelectCommand
  174. /// </summary>
  175. public MySqlCommand SelectCommand
  176. {
  177. get
  178. {
  179. if (this.command == null)
  180. {
  181. this.command = new MySqlCommand(this.sql, this._sqlConnection);
  182. }
  183. return this.command;
  184. }
  185. set
  186. {
  187. this.command = value;
  188. }
  189. }
  190. /// <summary>
  191. /// Fill
  192. /// </summary>
  193. /// <param name="dt"></param>
  194. public void Fill(DataTable dt)
  195. {
  196. if (dt == null)
  197. {
  198. dt = new DataTable();
  199. }
  200. var columns = dt.Columns;
  201. var rows = dt.Rows;
  202. using (MySqlDataReader dr = command.ExecuteReader())
  203. {
  204. for (int i = 0; i < dr.FieldCount; i++)
  205. {
  206. string name = dr.GetName(i).Trim();
  207. if (!columns.Contains(name))
  208. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  209. else
  210. {
  211. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  212. }
  213. }
  214. while (dr.Read())
  215. {
  216. DataRow daRow = dt.NewRow();
  217. for (int i = 0; i < columns.Count; i++)
  218. {
  219. daRow[columns[i].ColumnName] = dr.GetValue(i);
  220. }
  221. dt.Rows.Add(daRow);
  222. }
  223. }
  224. dt.AcceptChanges();
  225. }
  226. /// <summary>
  227. /// Fill
  228. /// </summary>
  229. /// <param name="ds"></param>
  230. public void Fill(DataSet ds)
  231. {
  232. if (ds == null)
  233. {
  234. ds = new DataSet();
  235. }
  236. using (MySqlDataReader dr = command.ExecuteReader())
  237. {
  238. do
  239. {
  240. var dt = new DataTable();
  241. var columns = dt.Columns;
  242. var rows = dt.Rows;
  243. for (int i = 0; i < dr.FieldCount; i++)
  244. {
  245. string name = dr.GetName(i).Trim();
  246. if (dr.GetFieldType(i).Name == "MySqlDateTime")
  247. {
  248. if (!columns.Contains(name))
  249. columns.Add(new DataColumn(name,UtilConstants.DateType));
  250. else
  251. {
  252. columns.Add(new DataColumn(name + i, UtilConstants.DateType));
  253. }
  254. }
  255. else
  256. {
  257. if (!columns.Contains(name))
  258. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  259. else
  260. {
  261. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  262. }
  263. }
  264. }
  265. while (dr.Read())
  266. {
  267. DataRow daRow = dt.NewRow();
  268. for (int i = 0; i < columns.Count; i++)
  269. {
  270. daRow[columns[i].ColumnName] = dr.GetValue(i);
  271. }
  272. dt.Rows.Add(daRow);
  273. }
  274. dt.AcceptChanges();
  275. ds.Tables.Add(dt);
  276. } while (dr.NextResult());
  277. }
  278. }
  279. }
  280. /// <summary>
  281. /// 数据填充器
  282. /// </summary>
  283. public class SqliteDataAdapter : IDataAdapter
  284. {
  285. private SqliteCommand command;
  286. private string sql;
  287. private SqliteConnection _sqlConnection;
  288. /// <summary>
  289. /// SqlDataAdapter
  290. /// </summary>
  291. /// <param name="command"></param>
  292. public SqliteDataAdapter(SqliteCommand command)
  293. {
  294. this.command = command;
  295. }
  296. public SqliteDataAdapter()
  297. {
  298. }
  299. /// <summary>
  300. /// SqlDataAdapter
  301. /// </summary>
  302. /// <param name="sql"></param>
  303. /// <param name="_sqlConnection"></param>
  304. public SqliteDataAdapter(string sql, SqliteConnection _sqlConnection)
  305. {
  306. this.sql = sql;
  307. this._sqlConnection = _sqlConnection;
  308. }
  309. /// <summary>
  310. /// SelectCommand
  311. /// </summary>
  312. public SqliteCommand SelectCommand
  313. {
  314. get
  315. {
  316. if (this.command == null)
  317. {
  318. this.command = new SqliteCommand(this.sql, this._sqlConnection);
  319. }
  320. return this.command;
  321. }
  322. set
  323. {
  324. this.command = value;
  325. }
  326. }
  327. /// <summary>
  328. /// Fill
  329. /// </summary>
  330. /// <param name="dt"></param>
  331. public void Fill(DataTable dt)
  332. {
  333. if (dt == null)
  334. {
  335. dt = new DataTable();
  336. }
  337. var columns = dt.Columns;
  338. var rows = dt.Rows;
  339. using (SqliteDataReader dr = command.ExecuteReader())
  340. {
  341. for (int i = 0; i < dr.FieldCount; i++)
  342. {
  343. string name = dr.GetName(i).Trim();
  344. var type = dr.GetFieldType(i);
  345. if (dr.GetDataTypeName(i).EqualCase("datetime"))
  346. {
  347. type = UtilConstants.DateType;
  348. }
  349. if (!columns.Contains(name))
  350. columns.Add(new DataColumn(name, type));
  351. else
  352. {
  353. columns.Add(new DataColumn(name + i, type));
  354. }
  355. }
  356. while (dr.Read())
  357. {
  358. DataRow daRow = dt.NewRow();
  359. for (int i = 0; i < columns.Count; i++)
  360. {
  361. daRow[columns[i].ColumnName] = dr.GetValue(i);
  362. }
  363. dt.Rows.Add(daRow);
  364. }
  365. }
  366. dt.AcceptChanges();
  367. }
  368. /// <summary>
  369. /// Fill
  370. /// </summary>
  371. /// <param name="ds"></param>
  372. public void Fill(DataSet ds)
  373. {
  374. if (ds == null)
  375. {
  376. ds = new DataSet();
  377. }
  378. using (SqliteDataReader dr = command.ExecuteReader())
  379. {
  380. do
  381. {
  382. var dt = new DataTable();
  383. var columns = dt.Columns;
  384. var rows = dt.Rows;
  385. for (int i = 0; i < dr.FieldCount; i++)
  386. {
  387. string name = dr.GetName(i).Trim();
  388. var type = dr.GetFieldType(i);
  389. if (dr.GetDataTypeName(i).EqualCase("datetime"))
  390. {
  391. type = UtilConstants.DateType;
  392. }
  393. if (!columns.Contains(name))
  394. columns.Add(new DataColumn(name, type));
  395. else
  396. {
  397. columns.Add(new DataColumn(name + i, type));
  398. }
  399. }
  400. while (dr.Read())
  401. {
  402. DataRow daRow = dt.NewRow();
  403. for (int i = 0; i < columns.Count; i++)
  404. {
  405. daRow[columns[i].ColumnName] = dr.GetValue(i);
  406. }
  407. dt.Rows.Add(daRow);
  408. }
  409. dt.AcceptChanges();
  410. ds.Tables.Add(dt);
  411. } while (dr.NextResult());
  412. }
  413. }
  414. }
  415. /// <summary>
  416. /// 数据填充器
  417. /// </summary>
  418. public class MyOracleDataAdapter : IDataAdapter
  419. {
  420. private OracleCommand command;
  421. private string sql;
  422. private OracleConnection _sqlConnection;
  423. /// <summary>
  424. /// SqlDataAdapter
  425. /// </summary>
  426. /// <param name="command"></param>
  427. public MyOracleDataAdapter(OracleCommand command)
  428. {
  429. this.command = command;
  430. }
  431. public MyOracleDataAdapter()
  432. {
  433. }
  434. /// <summary>
  435. /// SqlDataAdapter
  436. /// </summary>
  437. /// <param name="sql"></param>
  438. /// <param name="_sqlConnection"></param>
  439. public MyOracleDataAdapter(string sql, OracleConnection _sqlConnection)
  440. {
  441. this.sql = sql;
  442. this._sqlConnection = _sqlConnection;
  443. }
  444. /// <summary>
  445. /// SelectCommand
  446. /// </summary>
  447. public OracleCommand SelectCommand
  448. {
  449. get
  450. {
  451. if (this.command == null)
  452. {
  453. this.command = new OracleCommand(this.sql, this._sqlConnection);
  454. }
  455. return this.command;
  456. }
  457. set
  458. {
  459. this.command = value;
  460. }
  461. }
  462. /// <summary>
  463. /// Fill
  464. /// </summary>
  465. /// <param name="dt"></param>
  466. public void Fill(DataTable dt)
  467. {
  468. if (dt == null)
  469. {
  470. dt = new DataTable();
  471. }
  472. var columns = dt.Columns;
  473. var rows = dt.Rows;
  474. using (OracleDataReader dr = command.ExecuteReader())
  475. {
  476. for (int i = 0; i < dr.FieldCount; i++)
  477. {
  478. string name = dr.GetName(i).Trim();
  479. if (!columns.Contains(name))
  480. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  481. else
  482. {
  483. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  484. }
  485. }
  486. while (dr.Read())
  487. {
  488. DataRow daRow = dt.NewRow();
  489. for (int i = 0; i < columns.Count; i++)
  490. {
  491. daRow[columns[i].ColumnName] = dr.GetValue(i);
  492. }
  493. dt.Rows.Add(daRow);
  494. }
  495. }
  496. dt.AcceptChanges();
  497. }
  498. /// <summary>
  499. /// Fill
  500. /// </summary>
  501. /// <param name="ds"></param>
  502. public void Fill(DataSet ds)
  503. {
  504. if (ds == null)
  505. {
  506. ds = new DataSet();
  507. }
  508. using (OracleDataReader dr = command.ExecuteReader())
  509. {
  510. do
  511. {
  512. var dt = new DataTable();
  513. var columns = dt.Columns;
  514. var rows = dt.Rows;
  515. for (int i = 0; i < dr.FieldCount; i++)
  516. {
  517. string name = dr.GetName(i).Trim();
  518. if (!columns.Contains(name))
  519. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  520. else
  521. {
  522. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  523. }
  524. }
  525. while (dr.Read())
  526. {
  527. DataRow daRow = dt.NewRow();
  528. for (int i = 0; i < columns.Count; i++)
  529. {
  530. daRow[columns[i].ColumnName] = dr.GetValue(i);
  531. }
  532. dt.Rows.Add(daRow);
  533. }
  534. dt.AcceptChanges();
  535. ds.Tables.Add(dt);
  536. } while (dr.NextResult());
  537. }
  538. }
  539. }
  540. /// <summary>
  541. /// 数据填充器
  542. /// </summary>
  543. public class NpgsqlDataAdapter : IDataAdapter
  544. {
  545. private NpgsqlCommand command;
  546. private string sql;
  547. private NpgsqlConnection _sqlConnection;
  548. /// <summary>
  549. /// SqlDataAdapter
  550. /// </summary>
  551. /// <param name="command"></param>
  552. public NpgsqlDataAdapter(NpgsqlCommand command)
  553. {
  554. this.command = command;
  555. }
  556. public NpgsqlDataAdapter()
  557. {
  558. }
  559. /// <summary>
  560. /// SqlDataAdapter
  561. /// </summary>
  562. /// <param name="sql"></param>
  563. /// <param name="_sqlConnection"></param>
  564. public NpgsqlDataAdapter(string sql, NpgsqlConnection _sqlConnection)
  565. {
  566. this.sql = sql;
  567. this._sqlConnection = _sqlConnection;
  568. }
  569. /// <summary>
  570. /// SelectCommand
  571. /// </summary>
  572. public NpgsqlCommand SelectCommand
  573. {
  574. get
  575. {
  576. if (this.command == null)
  577. {
  578. this.command = new NpgsqlCommand(this.sql, this._sqlConnection);
  579. }
  580. return this.command;
  581. }
  582. set
  583. {
  584. this.command = value;
  585. }
  586. }
  587. /// <summary>
  588. /// Fill
  589. /// </summary>
  590. /// <param name="dt"></param>
  591. public void Fill(DataTable dt)
  592. {
  593. if (dt == null)
  594. {
  595. dt = new DataTable();
  596. }
  597. var columns = dt.Columns;
  598. var rows = dt.Rows;
  599. using (NpgsqlDataReader dr = command.ExecuteReader())
  600. {
  601. for (int i = 0; i < dr.FieldCount; i++)
  602. {
  603. string name = dr.GetName(i).Trim();
  604. if (!columns.Contains(name))
  605. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  606. else
  607. {
  608. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  609. }
  610. }
  611. while (dr.Read())
  612. {
  613. DataRow daRow = dt.NewRow();
  614. for (int i = 0; i < columns.Count; i++)
  615. {
  616. daRow[columns[i].ColumnName] = dr.GetValue(i);
  617. }
  618. dt.Rows.Add(daRow);
  619. }
  620. }
  621. dt.AcceptChanges();
  622. }
  623. /// <summary>
  624. /// Fill
  625. /// </summary>
  626. /// <param name="ds"></param>
  627. public void Fill(DataSet ds)
  628. {
  629. if (ds == null)
  630. {
  631. ds = new DataSet();
  632. }
  633. using (NpgsqlDataReader dr = command.ExecuteReader())
  634. {
  635. do
  636. {
  637. var dt = new DataTable();
  638. var columns = dt.Columns;
  639. var rows = dt.Rows;
  640. for (int i = 0; i < dr.FieldCount; i++)
  641. {
  642. string name = dr.GetName(i).Trim();
  643. if (!columns.Contains(name))
  644. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  645. else
  646. {
  647. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  648. }
  649. }
  650. while (dr.Read())
  651. {
  652. DataRow daRow = dt.NewRow();
  653. for (int i = 0; i < columns.Count; i++)
  654. {
  655. daRow[columns[i].ColumnName] = dr.GetValue(i);
  656. }
  657. dt.Rows.Add(daRow);
  658. }
  659. dt.AcceptChanges();
  660. ds.Tables.Add(dt);
  661. } while (dr.NextResult());
  662. }
  663. }
  664. }
  665. /// <summary>
  666. /// 数据填充器
  667. /// </summary>
  668. public class MyDmDataAdapter : IDataAdapter
  669. {
  670. private DmCommand command;
  671. private string sql;
  672. private DmConnection _sqlConnection;
  673. /// <summary>
  674. /// SqlDataAdapter
  675. /// </summary>
  676. /// <param name="command"></param>
  677. public MyDmDataAdapter(DmCommand command)
  678. {
  679. this.command = command;
  680. }
  681. public MyDmDataAdapter()
  682. {
  683. }
  684. /// <summary>
  685. /// SqlDataAdapter
  686. /// </summary>
  687. /// <param name="sql"></param>
  688. /// <param name="_sqlConnection"></param>
  689. public MyDmDataAdapter(string sql, DmConnection _sqlConnection)
  690. {
  691. this.sql = sql;
  692. this._sqlConnection = _sqlConnection;
  693. }
  694. /// <summary>
  695. /// SelectCommand
  696. /// </summary>
  697. public DmCommand SelectCommand
  698. {
  699. get
  700. {
  701. if (this.command == null)
  702. {
  703. this.command = new DmCommand(this.sql, this._sqlConnection);
  704. }
  705. return this.command;
  706. }
  707. set
  708. {
  709. this.command = value;
  710. }
  711. }
  712. /// <summary>
  713. /// Fill
  714. /// </summary>
  715. /// <param name="dt"></param>
  716. public void Fill(DataTable dt)
  717. {
  718. if (dt == null)
  719. {
  720. dt = new DataTable();
  721. }
  722. var columns = dt.Columns;
  723. var rows = dt.Rows;
  724. using (var dr = command.ExecuteReader())
  725. {
  726. for (int i = 0; i < dr.FieldCount; i++)
  727. {
  728. string name = dr.GetName(i).Trim();
  729. if (!columns.Contains(name))
  730. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  731. else
  732. {
  733. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  734. }
  735. }
  736. while (dr.Read())
  737. {
  738. DataRow daRow = dt.NewRow();
  739. for (int i = 0; i < columns.Count; i++)
  740. {
  741. daRow[columns[i].ColumnName] = dr.GetValue(i);
  742. }
  743. dt.Rows.Add(daRow);
  744. }
  745. }
  746. dt.AcceptChanges();
  747. }
  748. /// <summary>
  749. /// Fill
  750. /// </summary>
  751. /// <param name="ds"></param>
  752. public void Fill(DataSet ds)
  753. {
  754. if (ds == null)
  755. {
  756. ds = new DataSet();
  757. }
  758. using (var dr = command.ExecuteReader())
  759. {
  760. do
  761. {
  762. var dt = new DataTable();
  763. var columns = dt.Columns;
  764. var rows = dt.Rows;
  765. for (int i = 0; i < dr.FieldCount; i++)
  766. {
  767. string name = dr.GetName(i).Trim();
  768. if (!columns.Contains(name))
  769. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  770. else
  771. {
  772. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  773. }
  774. }
  775. while (dr.Read())
  776. {
  777. DataRow daRow = dt.NewRow();
  778. for (int i = 0; i < columns.Count; i++)
  779. {
  780. daRow[columns[i].ColumnName] = dr.GetValue(i);
  781. }
  782. dt.Rows.Add(daRow);
  783. }
  784. dt.AcceptChanges();
  785. ds.Tables.Add(dt);
  786. } while (dr.NextResult());
  787. }
  788. }
  789. }
  790. /// <summary>
  791. /// 数据填充器
  792. /// </summary>
  793. public class KdbndpDataAdapter : IDataAdapter
  794. {
  795. private KdbndpCommand command;
  796. private string sql;
  797. private KdbndpConnection _sqlConnection;
  798. /// <summary>
  799. /// SqlDataAdapter
  800. /// </summary>
  801. /// <param name="command"></param>
  802. public KdbndpDataAdapter(KdbndpCommand command)
  803. {
  804. this.command = command;
  805. }
  806. public KdbndpDataAdapter()
  807. {
  808. }
  809. /// <summary>
  810. /// SqlDataAdapter
  811. /// </summary>
  812. /// <param name="sql"></param>
  813. /// <param name="_sqlConnection"></param>
  814. public KdbndpDataAdapter(string sql, KdbndpConnection _sqlConnection)
  815. {
  816. this.sql = sql;
  817. this._sqlConnection = _sqlConnection;
  818. }
  819. /// <summary>
  820. /// SelectCommand
  821. /// </summary>
  822. public KdbndpCommand SelectCommand
  823. {
  824. get
  825. {
  826. if (this.command == null)
  827. {
  828. this.command = new KdbndpCommand(this.sql, this._sqlConnection);
  829. }
  830. return this.command;
  831. }
  832. set
  833. {
  834. this.command = value;
  835. }
  836. }
  837. /// <summary>
  838. /// Fill
  839. /// </summary>
  840. /// <param name="dt"></param>
  841. public void Fill(DataTable dt)
  842. {
  843. if (dt == null)
  844. {
  845. dt = new DataTable();
  846. }
  847. var columns = dt.Columns;
  848. var rows = dt.Rows;
  849. using (KdbndpDataReader dr = command.ExecuteReader())
  850. {
  851. for (int i = 0; i < dr.FieldCount; i++)
  852. {
  853. string name = dr.GetName(i).Trim();
  854. if (!columns.Contains(name))
  855. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  856. else
  857. {
  858. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  859. }
  860. }
  861. while (dr.Read())
  862. {
  863. DataRow daRow = dt.NewRow();
  864. for (int i = 0; i < columns.Count; i++)
  865. {
  866. daRow[columns[i].ColumnName] = dr.GetValue(i);
  867. }
  868. dt.Rows.Add(daRow);
  869. }
  870. }
  871. dt.AcceptChanges();
  872. }
  873. /// <summary>
  874. /// Fill
  875. /// </summary>
  876. /// <param name="ds"></param>
  877. public void Fill(DataSet ds)
  878. {
  879. if (ds == null)
  880. {
  881. ds = new DataSet();
  882. }
  883. using (KdbndpDataReader dr = command.ExecuteReader())
  884. {
  885. do
  886. {
  887. var dt = new DataTable();
  888. var columns = dt.Columns;
  889. var rows = dt.Rows;
  890. for (int i = 0; i < dr.FieldCount; i++)
  891. {
  892. string name = dr.GetName(i).Trim();
  893. if (!columns.Contains(name))
  894. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  895. else
  896. {
  897. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  898. }
  899. }
  900. while (dr.Read())
  901. {
  902. DataRow daRow = dt.NewRow();
  903. for (int i = 0; i < columns.Count; i++)
  904. {
  905. daRow[columns[i].ColumnName] = dr.GetValue(i);
  906. }
  907. dt.Rows.Add(daRow);
  908. }
  909. dt.AcceptChanges();
  910. ds.Tables.Add(dt);
  911. } while (dr.NextResult());
  912. }
  913. }
  914. }
  915. /// <summary>
  916. /// 数据填充器
  917. /// </summary>
  918. public class OscarDataAdapter : IDataAdapter
  919. {
  920. private OscarCommand command;
  921. private string sql;
  922. private OscarConnection _sqlConnection;
  923. /// <summary>
  924. /// SqlDataAdapter
  925. /// </summary>
  926. /// <param name="command"></param>
  927. public OscarDataAdapter(OscarCommand command)
  928. {
  929. this.command = command;
  930. }
  931. public OscarDataAdapter()
  932. {
  933. }
  934. /// <summary>
  935. /// SqlDataAdapter
  936. /// </summary>
  937. /// <param name="sql"></param>
  938. /// <param name="_sqlConnection"></param>
  939. public OscarDataAdapter(string sql, OscarConnection _sqlConnection)
  940. {
  941. this.sql = sql;
  942. this._sqlConnection = _sqlConnection;
  943. }
  944. /// <summary>
  945. /// SelectCommand
  946. /// </summary>
  947. public OscarCommand SelectCommand
  948. {
  949. get
  950. {
  951. if (this.command == null)
  952. {
  953. this.command = new OscarCommand(this.sql, this._sqlConnection);
  954. }
  955. return this.command;
  956. }
  957. set
  958. {
  959. this.command = value;
  960. }
  961. }
  962. /// <summary>
  963. /// Fill
  964. /// </summary>
  965. /// <param name="dt"></param>
  966. public void Fill(DataTable dt)
  967. {
  968. if (dt == null)
  969. {
  970. dt = new DataTable();
  971. }
  972. var columns = dt.Columns;
  973. var rows = dt.Rows;
  974. using (OscarDataReader dr = command.ExecuteReader())
  975. {
  976. for (int i = 0; i < dr.FieldCount; i++)
  977. {
  978. string name = dr.GetName(i).Trim();
  979. if (!columns.Contains(name))
  980. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  981. else
  982. {
  983. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  984. }
  985. }
  986. while (dr.Read())
  987. {
  988. DataRow daRow = dt.NewRow();
  989. for (int i = 0; i < columns.Count; i++)
  990. {
  991. daRow[columns[i].ColumnName] = dr.GetValue(i);
  992. }
  993. dt.Rows.Add(daRow);
  994. }
  995. }
  996. dt.AcceptChanges();
  997. }
  998. /// <summary>
  999. /// Fill
  1000. /// </summary>
  1001. /// <param name="ds"></param>
  1002. public void Fill(DataSet ds)
  1003. {
  1004. if (ds == null)
  1005. {
  1006. ds = new DataSet();
  1007. }
  1008. using (OscarDataReader dr = command.ExecuteReader())
  1009. {
  1010. do
  1011. {
  1012. var dt = new DataTable();
  1013. var columns = dt.Columns;
  1014. var rows = dt.Rows;
  1015. for (int i = 0; i < dr.FieldCount; i++)
  1016. {
  1017. string name = dr.GetName(i).Trim();
  1018. if (!columns.Contains(name))
  1019. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  1020. else
  1021. {
  1022. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  1023. }
  1024. }
  1025. while (dr.Read())
  1026. {
  1027. DataRow daRow = dt.NewRow();
  1028. for (int i = 0; i < columns.Count; i++)
  1029. {
  1030. daRow[columns[i].ColumnName] = dr.GetValue(i);
  1031. }
  1032. dt.Rows.Add(daRow);
  1033. }
  1034. dt.AcceptChanges();
  1035. ds.Tables.Add(dt);
  1036. } while (dr.NextResult());
  1037. }
  1038. }
  1039. }
  1040. /// <summary>
  1041. /// 数据填充器
  1042. /// </summary>
  1043. public class OleDbDataAdapter : IDataAdapter
  1044. {
  1045. private OleDbCommand command;
  1046. private string sql;
  1047. private OleDbConnection _sqlConnection;
  1048. /// <summary>
  1049. /// SqlDataAdapter
  1050. /// </summary>
  1051. /// <param name="command"></param>
  1052. public OleDbDataAdapter(OleDbCommand command)
  1053. {
  1054. this.command = command;
  1055. }
  1056. public OleDbDataAdapter()
  1057. {
  1058. }
  1059. /// <summary>
  1060. /// SqlDataAdapter
  1061. /// </summary>
  1062. /// <param name="sql"></param>
  1063. /// <param name="_sqlConnection"></param>
  1064. public OleDbDataAdapter(string sql, OleDbConnection _sqlConnection)
  1065. {
  1066. this.sql = sql;
  1067. this._sqlConnection = _sqlConnection;
  1068. }
  1069. /// <summary>
  1070. /// SelectCommand
  1071. /// </summary>
  1072. public OleDbCommand SelectCommand
  1073. {
  1074. get
  1075. {
  1076. if (this.command == null)
  1077. {
  1078. this.command = new OleDbCommand(this.sql, this._sqlConnection);
  1079. }
  1080. return this.command;
  1081. }
  1082. set
  1083. {
  1084. this.command = value;
  1085. }
  1086. }
  1087. /// <summary>
  1088. /// Fill
  1089. /// </summary>
  1090. /// <param name="dt"></param>
  1091. public void Fill(DataTable dt)
  1092. {
  1093. if (dt == null)
  1094. {
  1095. dt = new DataTable();
  1096. }
  1097. var columns = dt.Columns;
  1098. var rows = dt.Rows;
  1099. using (OleDbDataReader dr = command.ExecuteReader())
  1100. {
  1101. for (int i = 0; i < dr.FieldCount; i++)
  1102. {
  1103. string name = dr.GetName(i).Trim();
  1104. if (!columns.Contains(name))
  1105. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  1106. else
  1107. {
  1108. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  1109. }
  1110. }
  1111. while (dr.Read())
  1112. {
  1113. DataRow daRow = dt.NewRow();
  1114. for (int i = 0; i < columns.Count; i++)
  1115. {
  1116. daRow[columns[i].ColumnName] = dr.GetValue(i);
  1117. }
  1118. dt.Rows.Add(daRow);
  1119. }
  1120. }
  1121. dt.AcceptChanges();
  1122. }
  1123. /// <summary>
  1124. /// Fill
  1125. /// </summary>
  1126. /// <param name="ds"></param>
  1127. public void Fill(DataSet ds)
  1128. {
  1129. if (ds == null)
  1130. {
  1131. ds = new DataSet();
  1132. }
  1133. using (OleDbDataReader dr = command.ExecuteReader())
  1134. {
  1135. do
  1136. {
  1137. var dt = new DataTable();
  1138. var columns = dt.Columns;
  1139. var rows = dt.Rows;
  1140. for (int i = 0; i < dr.FieldCount; i++)
  1141. {
  1142. string name = dr.GetName(i).Trim();
  1143. if (!columns.Contains(name))
  1144. columns.Add(new DataColumn(name, dr.GetFieldType(i)));
  1145. else
  1146. {
  1147. columns.Add(new DataColumn(name + i, dr.GetFieldType(i)));
  1148. }
  1149. }
  1150. while (dr.Read())
  1151. {
  1152. DataRow daRow = dt.NewRow();
  1153. for (int i = 0; i < columns.Count; i++)
  1154. {
  1155. daRow[columns[i].ColumnName] = dr.GetValue(i);
  1156. }
  1157. dt.Rows.Add(daRow);
  1158. }
  1159. dt.AcceptChanges();
  1160. ds.Tables.Add(dt);
  1161. } while (dr.NextResult());
  1162. }
  1163. }
  1164. }
  1165. }