2007-11-14 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / Mono.Data / DataTools.cs
1 //\r
2 // Mono.Data.DataTools\r
3 //\r
4 // Authors:\r
5 //   Brian Ritchie (brianlritchie@hotmail.com) \r
6 //  \r
7 //\r
8 // Copyright (C) Brian Ritchie, 2002\r
9 // \r
10 //\r
11 \r
12 //\r
13 // Permission is hereby granted, free of charge, to any person obtaining\r
14 // a copy of this software and associated documentation files (the\r
15 // "Software"), to deal in the Software without restriction, including\r
16 // without limitation the rights to use, copy, modify, merge, publish,\r
17 // distribute, sublicense, and/or sell copies of the Software, and to\r
18 // permit persons to whom the Software is furnished to do so, subject to\r
19 // the following conditions:\r
20 // \r
21 // The above copyright notice and this permission notice shall be\r
22 // included in all copies or substantial portions of the Software.\r
23 // \r
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
31 //\r
32 using System;\r
33 using System.Data;\r
34 \r
35 namespace Mono.Data\r
36 {\r
37         /// <summary>\r
38         /// Summary description for ProviderTools.\r
39         /// </summary>\r
40         public class DataTools\r
41         {\r
42                 public DataTools()\r
43                 {\r
44                 }\r
45 \r
46                 static public IDataParameter AddParameter(IDbCommand Cmd, string ParameterName, DbType DbType, \r
47                         ParameterDirection Direction)\r
48                 {\r
49                         if (Cmd == null) \r
50                                 throw new System.ArgumentNullException ("Cmd");\r
51                         if (ParameterName == null) \r
52                                 throw new System.ArgumentNullException ("ParameterName");\r
53 \r
54                         IDataParameter param = Cmd.CreateParameter ();\r
55                         Cmd.Parameters.Add (param);\r
56                         param.ParameterName = ParameterName;\r
57                         param.Direction = Direction;\r
58                         param.DbType = DbType;\r
59                         return param;\r
60                 }\r
61 \r
62                 static public IDataParameter AddParameter(IDbCommand Cmd, string ParameterName, DbType DbType)\r
63                 {\r
64                         if (Cmd == null) \r
65                                 throw new System.ArgumentNullException ("Cmd");\r
66                         if (ParameterName == null) \r
67                                 throw new System.ArgumentNullException("ParameterName");\r
68 \r
69                         IDataParameter param = Cmd.CreateParameter ();\r
70                         Cmd.Parameters.Add (param);\r
71                         param.ParameterName = ParameterName;\r
72                         param.DbType = DbType;\r
73                         return param;\r
74                 }\r
75 \r
76                 static public DataSet FillDataSet (IDbConnection conn, string SelectCommand)\r
77                 {\r
78                         if (conn == null) \r
79                                 throw new System.ArgumentNullException ("conn");\r
80                         if (SelectCommand == null) \r
81                                 throw new System.ArgumentNullException ("SelectCommand");\r
82 \r
83                         DataSet ds = new DataSet ();\r
84                         IDbDataAdapter adapter = ProviderFactory.CreateDataAdapter (conn, SelectCommand);\r
85                         if (conn.State != ConnectionState.Open)\r
86                                 conn.Open ();\r
87                         adapter.Fill (ds);\r
88                         return ds;\r
89                 }\r
90 \r
91                 static public DataSet FillDataSet(IDbCommand SelectCommand)\r
92                 {\r
93                         if (SelectCommand == null) \r
94                                 throw new System.ArgumentNullException ("SelectCommand");\r
95 \r
96                         DataSet ds = new DataSet ();\r
97                         IDbDataAdapter adapter = ProviderFactory.CreateDataAdapter (SelectCommand);\r
98                         if (adapter.SelectCommand.Connection.State != ConnectionState.Open)\r
99                                 adapter.SelectCommand.Connection.Open ();\r
100                         adapter.Fill (ds);\r
101                         return ds;\r
102                 }\r
103 \r
104                 static public DataSet FillDataSet(string ConfigSetting, string SelectCommand)\r
105                 {\r
106                         if (ConfigSetting == null) \r
107                                 throw new System.ArgumentNullException ("ConfigSetting");\r
108                         if (SelectCommand == null) \r
109                                 throw new System.ArgumentNullException ("SelectCommand");\r
110 \r
111                         IDbConnection conn = ProviderFactory.CreateConnectionFromConfig (ConfigSetting);\r
112                         conn.Open ();\r
113                         DataSet ds = null;\r
114                         try\r
115                         {\r
116                                 ds = new DataSet ();\r
117                                 IDbDataAdapter adapter = ProviderFactory.CreateDataAdapter (conn, SelectCommand);\r
118                                 adapter.Fill (ds);\r
119                         }\r
120                         finally\r
121                         {\r
122                                 conn.Close ();\r
123                         }\r
124                         return ds;\r
125                 }\r
126 \r
127 \r
128         }\r
129 }\r
130 \r