2 // System.Web.UI.WebControls.SqlDataSource
5 // Ben Maurer (bmaurer@users.sourceforge.net)
11 using System.Collections;
12 using System.Collections.Specialized;
15 namespace System.Web.UI.WebControls {
16 public class SqlDataSource : DataSourceControl {
18 public SqlDataSource ()
22 public SqlDataSource (string connectionString, string selectCommand)
24 ConnectionString = connectionString;
25 SelectCommand = selectCommand;
28 public SqlDataSource (string providerName, string connectionString, string selectCommand)
30 ProviderName = providerName;
31 ConnectionString = connectionString;
32 SelectCommand = selectCommand;
35 protected override DataSourceView GetView (string viewName)
37 if (viewName == "" || viewName == null)
40 throw new ArgumentException ("viewName");
43 protected override ICollection GetViewNames ()
45 return new string [] { "DefaultView" };
50 return View.Insert ();
55 return View.Delete ();
58 public IEnumerable Select ()
60 return View.Select ();
65 return View.Update ();
68 protected override void LoadViewState (object savedState)
70 Pair p = savedState as Pair;
72 base.LoadViewState (p.First);
73 ((IStateManager) View).LoadViewState (p.Second);
77 protected override object SaveViewState ()
79 object me = base.SaveViewState (), view = ((IStateManager) View).SaveViewState ();
80 if (me != null || view != null)
81 return new Pair (me, view);
86 protected override void TrackViewState ()
88 base.TrackViewState ();
89 ((IStateManager) View).TrackViewState ();
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; }
99 public virtual string ProviderName {
101 string val = ViewState ["ProviderName"] as string;
102 return val == null ? "System.Data.SqlClient" : val;
104 set { ViewState ["ProviderName"] = value; }
108 public virtual string ConnectionString {
110 string val = ViewState ["ConnectionString"] as string;
111 return val == null ? "" : val;
113 set { ViewState ["ConnectionString"] = value; }
116 public SqlDataSourceMode DataSourceMode {
118 object val = ViewState ["DataSourceMode"];
119 return val == null ? SqlDataSourceMode.DataSet : (SqlDataSourceMode) val;
121 set { ViewState ["DataSourceMode"] = value; }
124 public string DeleteCommand {
125 get { return View.DeleteCommand; }
126 set { View.DeleteCommand = value; }
129 public ParameterCollection DeleteParameters {
130 get { return View.DeleteParameters; }
133 public ParameterCollection FilterParameters {
134 get { return View.FilterParameters; }
137 public string InsertCommand {
138 get { return View.InsertCommand; }
139 set { View.InsertCommand = value; }
141 public ParameterCollection InsertParameters {
142 get { return View.InsertParameters; }
145 public string SelectCommand {
146 get { return View.SelectCommand; }
147 set { View.SelectCommand = value; }
150 public ParameterCollection SelectParameters {
151 get { return View.SelectParameters; }
154 public string UpdateCommand {
155 get { return View.UpdateCommand; }
156 set { View.UpdateCommand = value; }
159 public ParameterCollection UpdateParameters {
160 get { return View.UpdateParameters; }
163 public string FilterExpression {
164 get { return View.FilterExpression; }
165 set { View.FilterExpression = value; }
168 public event SqlDataSourceStatusEventHandler Deleted {
169 add { View.Deleted += value; }
170 remove { View.Deleted -= value; }
173 public event SqlDataSourceCommandEventHandler Deleting {
174 add { View.Deleting += value; }
175 remove { View.Deleting -= value; }
178 public event SqlDataSourceStatusEventHandler Inserted {
179 add { View.Inserted += value; }
180 remove { View.Inserted -= value; }
183 public event SqlDataSourceCommandEventHandler Inserting {
184 add { View.Inserting += value; }
185 remove { View.Inserting -= value; }
188 public event SqlDataSourceStatusEventHandler Selected {
189 add { View.Selected += value; }
190 remove { View.Selected -= value; }
193 public event SqlDataSourceCommandEventHandler Selecting {
194 add { View.Selecting += value; }
195 remove { View.Selecting -= value; }
198 public event SqlDataSourceStatusEventHandler Updated {
199 add { View.Updated += value; }
200 remove { View.Updated -= value; }
203 public event SqlDataSourceCommandEventHandler Updating {
204 add { View.Updating += value; }
205 remove { View.Updating -= value; }
208 SqlDataSourceView view;
209 SqlDataSourceView View {
212 view = new SqlDataSourceView (this, "DefaultView");
213 view.DataSourceViewChanged += new EventHandler (ViewChanged);
214 if (IsTrackingViewState)
215 ((IStateManager) view).TrackViewState ();
221 void ViewChanged (object source, EventArgs e)
223 OnDataSourceChanged (e);