11namespace FlySQL ;
2- public abstract class SQL
2+ public abstract class SQL : ControllerBase
33{
44 private MySqlConnection con { get ; set ; }
55 private MySqlCommand cmd { get ; set ; }
66 private MySqlDataReader rdr { get ; set ; }
7- public void Connect ( string connection )
8- {
9- con = new MySqlConnection ( connection ) ;
10- }
7+ public void Connect ( string connection ) { con = new MySqlConnection ( connection ) ; }
118 public void Query ( string stm )
129 {
13- con . Open ( ) ;
10+ if ( con . State == ConnectionState . Closed ) con . Open ( ) ;
1411 cmd = new MySqlCommand ( stm , con ) ;
1512 }
1613 public void Query ( string stm , string param , object value )
1714 {
18- con . Open ( ) ;
15+ if ( con . State == ConnectionState . Closed ) con . Open ( ) ;
1916 cmd = new MySqlCommand ( stm , con ) ;
20- cmd . Parameters . AddWithValue ( $ "@{ param } ", value ) ;
21- }
22- public void Select ( string table )
23- {
24- Query ( @$ "SELECT * FROM { table } ") ;
25- }
26- public void Select ( string table , string target )
27- {
28- string stm = @$ "SELECT * FROM { table } WHERE { target } = @{ target } ";
29- Query ( stm ) ;
17+ Add ( $ "@{ param } ", value ) ;
3018 }
19+ public void Select ( string table ) { Query ( @$ "SELECT * FROM { table } ") ; }
20+ public void Select ( string table , string target ) { Query ( @$ "SELECT * FROM { table } WHERE { target } = @{ target } ") ; }
3121 public void Select ( string table , string target , object value )
3222 {
33- string stm = @$ "SELECT * FROM { table } WHERE { target } = @{ target } ";
34- Query ( stm ) ;
35- cmd . Parameters . AddWithValue ( $ "@{ target } ", value ) ;
36- }
37- public void Insert ( string table , params string [ ] columns )
38- {
39- string stm = @$ "INSERT INTO { table } ({ string . Join ( ", " , columns ) } ) VALUES ({ string . Join ( ", " , columns . Select ( x => $ "@{ x } ") ) } )";
40- Query ( stm ) ;
23+ Query ( @$ "SELECT * FROM { table } WHERE { target } = @{ target } ") ;
24+ Add ( $ "@{ target } ", value ) ;
4125 }
26+ public void Insert ( string table , params string [ ] columns ) { Query ( @$ "INSERT INTO { table } ({ string . Join ( ", " , columns ) } ) VALUES ({ string . Join ( ", " , columns . Select ( x => $ "@{ x } ") ) } )") ; }
4227 public void OneInsert ( string table , params object [ ] values )
4328 {
44- if ( values . Length % 2 != 0 )
45- {
46- throw new Exception ( "SQL.OneInsert() values must be in pairs. Please see documentation." ) ;
47- }
29+ if ( values . Length % 2 != 0 ) throw new Exception ( "SQL.OneInsert() values must be in pairs. Please see documentation." ) ;
4830 else
4931 {
50- List < object > keys = new List < object > ( ) ;
51- List < object > value = new List < object > ( ) ;
52- for ( int i = 0 ; i < values . Length ; i += 2 )
53- {
54- keys . Add ( values [ i ] ) ;
55- value . Add ( values [ i + 1 ] ) ;
56- }
57- string stm = @$ "INSERT INTO { table } ({ string . Join ( ", " , keys ) } ) VALUES ({ string . Join ( ", " , keys . Select ( x => $ "@{ x } ") ) } )";
58- Query ( stm ) ;
59- for ( int i = 0 ; i < keys . Count ; i ++ )
60- {
61- cmd . Parameters . AddWithValue ( $ "@{ keys [ i ] } ", value [ i ] ) ;
62- }
32+ IDictionary < object , object > dict = new Dictionary < object , object > ( ) ;
33+ for ( int i = 0 ; i < values . Length ; i += 2 ) dict . Add ( values [ i ] , values [ i + 1 ] ) ;
34+
35+ Query ( @$ "INSERT INTO { table } ({ string . Join ( ", " , dict . Keys ) } ) VALUES ({ string . Join ( ", " , dict . Keys . Select ( x => $ "@{ x } ") ) } )") ;
36+
37+ for ( int i = 0 ; i < dict . Keys . Count ; i ++ ) Add ( $ "@{ dict . Keys . ElementAt ( i ) } ", dict . Values . ElementAt ( i ) ) ;
6338 Finish ( ) ;
6439 }
6540 }
66- public void Update ( string table , string target , params string [ ] columns )
67- {
68- string stm = @$ "UPDATE { table } SET { string . Join ( ", " , columns . Select ( x => $ "{ x } = @{ x } ") ) } WHERE { target } = @{ target } ";
69- Query ( stm ) ;
70- }
41+ public void Update ( string table , string target , params string [ ] columns ) { Query ( @$ "UPDATE { table } SET { string . Join ( ", " , columns . Select ( x => $ "{ x } = @{ x } ") ) } WHERE { target } = @{ target } ") ; }
7142 public void OneUpdate ( string table , string target , object targetValue , params object [ ] values )
7243 {
73- if ( values . Length % 2 != 0 )
74- {
75- throw new Exception ( "SQL.OneUpdate() values must be in pairs. Please see documentation." ) ;
76- }
44+ if ( values . Length % 2 != 0 ) throw new Exception ( "SQL.OneUpdate() values must be in pairs. Please see documentation." ) ;
7745 else
7846 {
79- List < object > keys = new List < object > ( ) ;
80- List < object > value = new List < object > ( ) ;
81- for ( int i = 0 ; i < values . Length ; i += 2 )
82- {
83- keys . Add ( values [ i ] ) ;
84- value . Add ( values [ i + 1 ] ) ;
85- }
86- string stm = @$ "UPDATE { table } SET { string . Join ( ", " , keys . Select ( x => $ "{ x } = @{ x } ") ) } WHERE { target } = @{ target } ";
87- Query ( stm ) ;
88- cmd . Parameters . AddWithValue ( $ "@{ target } ", targetValue ) ;
89- for ( int i = 0 ; i < keys . Count ; i ++ )
90- {
91- cmd . Parameters . AddWithValue ( $ "@{ keys [ i ] } ", value [ i ] ) ;
92- }
47+ IDictionary < object , object > dict = new Dictionary < object , object > ( ) ;
48+ for ( int i = 0 ; i < values . Length ; i += 2 ) dict . Add ( values [ i ] , values [ i + 1 ] ) ;
49+
50+ Query ( @$ "UPDATE { table } SET { string . Join ( ", " , dict . Keys . Select ( x => $ "{ x } = @{ x } ") ) } WHERE { target } = @{ target } ") ;
51+ Add ( $ "@{ target } ", targetValue ) ;
52+
53+ for ( int i = 0 ; i < dict . Keys . Count ; i ++ ) Add ( $ "@{ dict . Keys . ElementAt ( i ) } ", dict . Values . ElementAt ( i ) ) ;
9354 Finish ( ) ;
9455 }
9556 }
96- public void Delete ( string table , string target )
97- {
98- string stm = @$ "DELETE FROM { table } WHERE { target } = @{ target } ";
99- Query ( stm ) ;
100- }
57+ public void Delete ( string table , string target ) { Query ( @$ "DELETE FROM { table } WHERE { target } = @{ target } ") ; }
10158 public void Delete ( string table , string target , object value )
10259 {
103- string stm = @$ "DELETE FROM { table } WHERE { target } = @{ target } ";
104- Query ( stm ) ;
105- cmd . Parameters . AddWithValue ( $ "@{ target } ", value ) ;
60+ Query ( @$ "DELETE FROM { table } WHERE { target } = @{ target } ") ;
61+ Add ( $ "@{ target } ", value ) ;
10662 Finish ( ) ;
10763 }
10864 public void Mad ( params object [ ] values )
10965 {
110- if ( values . Length % 2 != 0 )
111- {
112- throw new Exception ( "SQL.Mad() values must be in pairs. Please see documentation." ) ;
113- }
114- else
115- {
116- for ( int i = 0 ; i < values . Length ; i += 2 )
117- {
118- cmd . Parameters . AddWithValue ( values [ i ] . ToString ( ) , values [ i + 1 ] ) ;
119- }
120- }
66+ if ( values . Length % 2 != 0 ) throw new Exception ( "SQL.Mad() values must be in pairs. Please see documentation." ) ;
67+ else for ( int i = 0 ; i < values . Length ; i += 2 ) cmd . Parameters . AddWithValue ( values [ i ] . ToString ( ) , values [ i + 1 ] ) ;
12168 }
12269 public void Bulk ( params object [ ] values )
12370 {
124- if ( values . Length % 2 != 0 )
125- {
126- throw new Exception ( "SQL.Bulk() values must be in pairs. Please see documentation." ) ;
127- }
71+ if ( values . Length % 2 != 0 ) throw new Exception ( "SQL.Bulk() values must be in pairs. Please see documentation." ) ;
12872 else
12973 {
130- for ( int i = 0 ; i < values . Length ; i += 2 )
131- {
132- cmd . Parameters . AddWithValue ( values [ i ] . ToString ( ) , values [ i + 1 ] ) ;
133- }
74+ for ( int i = 0 ; i < values . Length ; i += 2 ) cmd . Parameters . AddWithValue ( values [ i ] . ToString ( ) , values [ i + 1 ] ) ;
13475 Finish ( ) ;
13576 }
13677 }
137- public void Add ( string name , object value )
138- {
139- cmd . Parameters . AddWithValue ( name , value ) ;
140- }
78+ public void Add ( string name , object value ) { cmd . Parameters . AddWithValue ( name , value ) ; }
14179 public void Read ( )
14280 {
14381 cmd . Prepare ( ) ;
14482 rdr = cmd . ExecuteReader ( ) ;
14583 }
146- public bool Study ( )
147- {
148- return rdr . Read ( ) ;
149- }
150- public string ? NStrung ( int i )
151- {
152- return rdr . IsDBNull ( i ) ? null : rdr . GetString ( i ) ;
153- }
154- public string NString ( int i )
155- {
156- return rdr . IsDBNull ( i ) ? "" : rdr . GetString ( i ) ;
157- }
158- public int NInt ( int i )
159- {
160- return rdr . IsDBNull ( i ) ? 0 : rdr . GetInt32 ( i ) ;
161- }
162- public long NLong ( int i )
163- {
164- return rdr . IsDBNull ( i ) ? 0 : rdr . GetInt64 ( i ) ;
165- }
166- public double NDouble ( int i )
167- {
168- return rdr . IsDBNull ( i ) ? 0 : rdr . GetDouble ( i ) ;
169- }
170- public float NFloat ( int i )
171- {
172- return rdr . IsDBNull ( i ) ? 0 : rdr . GetFloat ( i ) ;
173- }
174- public decimal NDecimal ( int i )
175- {
176- return rdr . IsDBNull ( i ) ? 0.0m : rdr . GetDecimal ( i ) ;
177- }
178- public DateTime NDate ( int i )
179- {
180- return rdr . IsDBNull ( i ) ? DateTime . MinValue : rdr . GetDateTime ( i ) ;
181- }
182- public bool NBool ( int i )
183- {
184- return rdr . IsDBNull ( i ) ? false : rdr . GetBoolean ( i ) ;
185- }
186- public string String ( int i )
187- {
188- return rdr . GetString ( i ) ;
189- }
190- public int Int ( int i )
191- {
192- return rdr . GetInt32 ( i ) ;
193- }
194- public long Long ( int i )
195- {
196- return rdr . GetInt64 ( i ) ;
197- }
198- public double Double ( int i )
199- {
200- return rdr . GetDouble ( i ) ;
201- }
202- public float Float ( int i )
203- {
204- return rdr . GetFloat ( i ) ;
205- }
206- public decimal Decimal ( int i )
207- {
208- return rdr . GetDecimal ( i ) ;
209- }
210- public DateTime Date ( int i )
211- {
212- return rdr . GetDateTime ( i ) ;
213- }
214- public bool Bool ( int i )
215- {
216- return rdr . GetBoolean ( i ) ;
217- }
84+ public bool Study ( ) { return rdr . Read ( ) ; }
85+ public string ? NStrung ( int i ) { return rdr . IsDBNull ( i ) ? null : rdr . GetString ( i ) ; }
86+ public string NString ( int i ) { return rdr . IsDBNull ( i ) ? "" : rdr . GetString ( i ) ; }
87+ public int NInt ( int i ) { return rdr . IsDBNull ( i ) ? 0 : rdr . GetInt32 ( i ) ; }
88+ public long NLong ( int i ) { return rdr . IsDBNull ( i ) ? 0 : rdr . GetInt64 ( i ) ; }
89+ public double NDouble ( int i ) { return rdr . IsDBNull ( i ) ? 0 : rdr . GetDouble ( i ) ; }
90+ public float NFloat ( int i ) { return rdr . IsDBNull ( i ) ? 0 : rdr . GetFloat ( i ) ; }
91+ public decimal NDecimal ( int i ) { return rdr . IsDBNull ( i ) ? 0.0m : rdr . GetDecimal ( i ) ; }
92+ public DateTime NDate ( int i ) { return rdr . IsDBNull ( i ) ? DateTime . MinValue : rdr . GetDateTime ( i ) ; }
93+ public bool NBool ( int i ) { return rdr . IsDBNull ( i ) ? false : rdr . GetBoolean ( i ) ; }
94+ public string String ( int i ) { return rdr . GetString ( i ) ; }
95+ public int Int ( int i ) { return rdr . GetInt32 ( i ) ; }
96+ public long Long ( int i ) { return rdr . GetInt64 ( i ) ; }
97+ public double Double ( int i ) { return rdr . GetDouble ( i ) ; }
98+ public float Float ( int i ) { return rdr . GetFloat ( i ) ; }
99+ public decimal Decimal ( int i ) { return rdr . GetDecimal ( i ) ; }
100+ public DateTime Date ( int i ) { return rdr . GetDateTime ( i ) ; }
101+ public bool Bool ( int i ) { return rdr . GetBoolean ( i ) ; }
218102 public void Finish ( )
219103 {
220104 cmd . Prepare ( ) ;
221105 cmd . ExecuteNonQuery ( ) ;
222106 }
223- public void Close ( )
224- {
225- con . Close ( ) ;
226- }
107+ public void Close ( ) { con . Close ( ) ; }
227108}
0 commit comments