2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / SqlDataSource.cs
1 //
2 // System.Web.UI.WebControls.SqlDataSource
3 //
4 // Authors:
5 //      Ben Maurer (bmaurer@users.sourceforge.net)
6 //
7 // (C) 2003 Ben Maurer
8 //
9
10 #if NET_2_0
11 using System.Collections;
12 using System.Collections.Specialized;
13 using System.Text;
14
15 namespace System.Web.UI.WebControls {
16         public class SqlDataSource : DataSourceControl {
17
18                 public SqlDataSource ()
19                 {
20                 }
21                 
22                 public SqlDataSource (string connectionString, string selectCommand)
23                 {
24                         ConnectionString = connectionString;
25                         SelectCommand = selectCommand;
26                 }
27                 
28                 public SqlDataSource (string providerName, string connectionString, string selectCommand)
29                 {
30                         ProviderName = providerName;
31                         ConnectionString = connectionString;
32                         SelectCommand = selectCommand;
33                 }
34
35                 protected override DataSourceView GetView (string viewName)
36                 {
37                         if (viewName == "" || viewName == null)
38                                 return View;
39                         else
40                                 throw new ArgumentException ("viewName");
41                 }
42                 
43                 protected override ICollection GetViewNames ()
44                 {
45                         return new string [] { "DefaultView" };
46                 }
47                         
48                 public int Insert ()
49                 {
50                         return View.Insert ();
51                 }
52                 
53                 public int Delete ()
54                 {
55                         return View.Delete ();
56                 }
57                 
58                 public IEnumerable Select ()
59                 {
60                         return View.Select ();
61                 }
62                 
63                 public int Update ()
64                 {
65                         return View.Update ();
66                 }
67                         
68                 protected override void LoadViewState (object savedState)
69                 {
70                         Pair p = savedState as Pair;
71                         if (p != null) {
72                                 base.LoadViewState (p.First);
73                                 ((IStateManager) View).LoadViewState (p.Second);
74                         }
75                 }
76                 
77                 protected override object SaveViewState ()
78                 {
79                         object me = base.SaveViewState (), view = ((IStateManager) View).SaveViewState ();
80                         if (me != null || view != null)
81                                 return new Pair (me, view);
82                         else
83                                 return null;
84                 }
85                 
86                 protected override void TrackViewState ()
87                 {
88                         base.TrackViewState ();
89                         ((IStateManager) View).TrackViewState ();
90                 }
91                 
92                 //protected virtual DataSourceCache Cache { get; }
93                 //public virtual int CacheDuration { get; set; }
94                 //public virtual DataSourceCacheExpiry CacheExpirationPolicy { get; set; }
95                 //public virtual string CacheKeyDependency { get; set; }
96                 //public virtual string SqlCacheDependency { get; set; }
97                 //public virtual bool EnableCaching { get; set; }
98                 
99                 public virtual string ProviderName {
100                         get {
101                                 string val = ViewState ["ProviderName"] as string;
102                                 return val == null ? "System.Data.SqlClient" : val;
103                         }
104                         set { ViewState ["ProviderName"] = value; }
105                 }
106                 
107                 
108                 public virtual string ConnectionString {
109                         get {
110                                 string val = ViewState ["ConnectionString"] as string;
111                                 return val == null ? "" : val;
112                         }
113                         set { ViewState ["ConnectionString"] = value; }
114                 }
115                 
116                 public SqlDataSourceMode DataSourceMode {
117                         get {
118                                 object val = ViewState ["DataSourceMode"];
119                                 return val == null ? SqlDataSourceMode.DataSet : (SqlDataSourceMode) val;
120                         }
121                         set { ViewState ["DataSourceMode"] = value; }
122                 }
123                                 
124                 public string DeleteCommand {
125                         get { return View.DeleteCommand; }
126                         set { View.DeleteCommand = value; }
127                 }
128                 
129                 public ParameterCollection DeleteParameters {
130                         get { return View.DeleteParameters; }
131                 }
132                 
133                 public ParameterCollection FilterParameters {
134                         get { return View.FilterParameters; }
135                 }
136                 
137                 public string InsertCommand {
138                         get { return View.InsertCommand; }
139                         set { View.InsertCommand = value; }
140                 }
141                 public ParameterCollection InsertParameters {
142                         get { return View.InsertParameters; }
143                 }
144
145                 public string SelectCommand {
146                         get { return View.SelectCommand; }
147                         set { View.SelectCommand = value; }
148                 }
149                 
150                 public ParameterCollection SelectParameters {
151                         get { return View.SelectParameters; }
152                 }
153                 
154                 public string UpdateCommand {
155                         get { return View.UpdateCommand; }
156                         set { View.UpdateCommand = value; }
157                 }
158                 
159                 public ParameterCollection UpdateParameters {
160                         get { return View.UpdateParameters; }
161                 }
162                 
163                 public string FilterExpression {
164                         get { return View.FilterExpression; }
165                         set { View.FilterExpression = value; }
166                 }
167                 
168                 public event SqlDataSourceStatusEventHandler Deleted {
169                         add { View.Deleted += value; }
170                         remove { View.Deleted -= value; }
171                 }
172                 
173                 public event SqlDataSourceCommandEventHandler Deleting {
174                         add { View.Deleting += value; }
175                         remove { View.Deleting -= value; }
176                 }
177                 
178                 public event SqlDataSourceStatusEventHandler Inserted {
179                         add { View.Inserted += value; }
180                         remove { View.Inserted -= value; }
181                 }
182                 
183                 public event SqlDataSourceCommandEventHandler Inserting {
184                         add { View.Inserting += value; }
185                         remove { View.Inserting -= value; }
186                 }
187                 
188                 public event SqlDataSourceStatusEventHandler Selected {
189                         add { View.Selected += value; }
190                         remove { View.Selected -= value; }
191                 }
192                 
193                 public event SqlDataSourceCommandEventHandler Selecting {
194                         add { View.Selecting += value; }
195                         remove { View.Selecting -= value; }
196                 }
197                 
198                 public event SqlDataSourceStatusEventHandler Updated {
199                         add { View.Updated += value; }
200                         remove { View.Updated -= value; }
201                 }
202                 
203                 public event SqlDataSourceCommandEventHandler Updating {
204                         add { View.Updating += value; }
205                         remove { View.Updating -= value; }
206                 }
207                 
208                 SqlDataSourceView view;
209                 SqlDataSourceView View {
210                         get {
211                                 if (view == null) {
212                                         view = new SqlDataSourceView (this, "DefaultView");
213                                         view.DataSourceViewChanged += new EventHandler (ViewChanged);
214                                         if (IsTrackingViewState)
215                                                 ((IStateManager) view).TrackViewState ();
216                                 }
217                                 return view;
218                         }
219                 }
220                 
221                 void ViewChanged (object source, EventArgs e)
222                 {
223                         OnDataSourceChanged (e);
224                 }
225         }
226 }
227 #endif
228