本文整理汇总了C#中System.Data.Select.ExecuteReader方法的典型用法代码示例。如果您正苦于以下问题:C# Select.ExecuteReader方法的具体用法?C# Select.ExecuteReader怎么用?C# Select.ExecuteReader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Select
的用法示例。
在下文中一共展示了Select.ExecuteReader方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnInit
/// <summary>
/// Handles the <see cref="E:System.Web.UI.Control.Init"/> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs"/> object that contains the event data.</param>
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if(!DesignMode)
{
// load em up
// cheap way to check for load state
if(Items.Count == 0)
{
if(!String.IsNullOrEmpty(tableName))
{
DataProvider provider = DataService.GetInstance(ProviderName);
SqlQuery q = new Select(provider).From(tableName);
q.CheckLogicalDelete();
if(String.IsNullOrEmpty(valueField) || String.IsNullOrEmpty(textField))
{
// look it up using the table schema
TableSchema.Table tbl = DataService.GetSchema(tableName, providerName, TableType.Table);
if(tbl != null)
{
if(String.IsNullOrEmpty(valueField))
valueField = tbl.PrimaryKey.ColumnName;
if(String.IsNullOrEmpty(textField))
textField = tbl.Columns.Count > 1 ? tbl.Columns[1].ColumnName : tbl.Columns[0].ColumnName;
}
else
throw new Exception("Table name '" + tableName + "' using Provider '" + providerName + "' doesn't work");
}
q.SelectColumnList = new[] {valueField, textField};
if(!String.IsNullOrEmpty(OrderField))
q.OrderAsc(OrderField);
else
q.OrderAsc(textField);
if(!String.IsNullOrEmpty(WhereField))
q.Where(WhereField).IsEqualTo(WhereValue);
IDataReader rdr = null;
try
{
rdr = q.ExecuteReader();
while(rdr.Read())
{
ListItem item = new ListItem(rdr[1].ToString(), rdr[0].ToString());
Items.Add(item);
}
}
catch(DataException x)
{
throw new Exception("Error loading up ListItems for " + ClientID + ": " + x.Message);
}
finally
{
if(rdr != null)
rdr.Close();
}
ListItem prompt = new ListItem(promptText, PromptValue);
if(showPrompt)
Items.Insert(0, prompt);
if(!String.IsNullOrEmpty(SelectedValue))
{
foreach(ListItem item in Items)
{
if(Utility.IsMatch(item.Value, SelectedValue))
{
item.Selected = true;
break;
}
}
}
}
}
}
}
示例2: BindEditor
/// <summary>
/// Binds the editor.
/// </summary>
/// <param name="tableSchema">The table schema.</param>
/// <param name="keyId">The key id.</param>
protected void BindEditor(TableSchema.Table tableSchema, string keyId)
{
//get all the data for this row
SqlQuery qry = new Select(tableSchema.Provider).From(tableSchema).Where(tableSchema.PrimaryKey).IsEqualTo(keyId);
//qry.AddWhere(tbl.PrimaryKey.ColumnName, keyID);
using(IDataReader rdr = qry.ExecuteReader())
{
if(rdr.Read())
{
foreach(TableSchema.TableColumn col in tableSchema.Columns)
{
if(col.IsPrimaryKey)
{
Control ctrl = FindControl(PK_ID + col.ColumnName);
if(ctrl != null)
{
string colValue = rdr[col.ColumnName].ToString();
Type ctrlType = ctrl.GetType();
if(ctrlType == typeof(Label))
((Label)ctrl).Text = colValue;
else if(ctrlType == typeof(DropDownList))
((DropDownList)ctrl).SelectedValue = colValue;
else if(ctrlType == typeof(TextBox))
((TextBox)ctrl).Text = colValue;
}
}
else
{
Control ctrl = FindControl(col.ColumnName);
if(ctrl != null)
{
Type ctrlType = ctrl.GetType();
if(ctrlType == typeof(TextBox))
{
TextBox tbx = ((TextBox)ctrl);
tbx.Text = rdr[col.ColumnName].ToString();
}
else if(ctrlType == typeof(CheckBox))
{
if(!col.IsNullable || (col.IsNullable && rdr[col.ColumnName] != DBNull.Value))
((CheckBox)ctrl).Checked = Convert.ToBoolean(rdr[col.ColumnName]);
}
else if(ctrlType == typeof(DropDownList))
((DropDownList)ctrl).SelectedValue = rdr[col.ColumnName].ToString();
else if(ctrlType == typeof(CalendarControl))
{
DateTime dt;
if(DateTime.TryParse(rdr[col.ColumnName].ToString(), out dt))
{
CalendarControl cal = (CalendarControl)ctrl;
cal.SelectedDate = dt.Date;
}
}
else if(ctrlType == typeof(Label))
((Label)ctrl).Text = rdr[col.ColumnName].ToString();
}
}
}
}
rdr.Close();
}
}
示例3: AddManyToMany
/// <summary>
/// Adds the many to many.
/// </summary>
/// <param name="htmlTable">The HTML table.</param>
private void AddManyToMany(HtmlTable htmlTable)
{
foreach(TableSchema.ManyToManyRelationship m2m in ManyToManyCollection)
{
TableSchema.Table mapTable = DataService.GetSchema(m2m.MapTableName, ProviderName);
TableSchema.Table foreignTable = DataService.GetSchema(m2m.ForeignTableName, ProviderName);
CheckBoxList chk = new CheckBoxList {ID = mapTable.ClassName};
AddRow(htmlTable, mapTable.DisplayName, chk);
chk.Items.Clear();
chk.RepeatColumns = 2;
bool isSortable = Utility.GetEffectiveMaxLength(foreignTable.Columns[1]) < 256;
SqlQuery query = new Select(foreignTable.Provider).From(foreignTable);
if(isSortable)
query.OrderAsc(foreignTable.Columns[1].ColumnName);
using(IDataReader rdrAllMappings = query.ExecuteReader())
{
while(rdrAllMappings.Read())
chk.Items.Add(new ListItem(rdrAllMappings[1].ToString(), rdrAllMappings[0].ToString().ToLower()));
rdrAllMappings.Close();
}
List<string> activeIds = new List<string>();
SqlQuery queryMappings = new Select(mapTable.Provider).From(mapTable).Where(mapTable.GetColumn(m2m.MapTableLocalTableKeyColumn)).IsEqualTo(PrimaryKeyValue);
using(IDataReader rdrActiveMappings = queryMappings.ExecuteReader())
{
while(rdrActiveMappings.Read())
activeIds.Add(rdrActiveMappings[m2m.MapTableForeignTableKeyColumn].ToString().ToLower());
rdrActiveMappings.Close();
}
foreach(string id in activeIds)
{
ListItem li = chk.Items.FindByValue(id);
if(li != null)
li.Selected = true;
}
}
}
示例4: CreateManyMapper
/// <summary>
/// Special builder for many to many relational tables.
/// </summary>
/// <returns></returns>
private HtmlTable CreateManyMapper()
{
HtmlTable tbl = new HtmlTable {Width = "600px"};
if(ShowScaffoldCaption)
AddRow(tbl, String.Format("<h2>{0} Map</h2>", TableSchema.DisplayName), 2);
foreach(TableSchema.TableColumn col in TableSchema.Columns)
{
//by convention, each key in the map table should be a foreignkey
//if not, it's not good
if(col.IsPrimaryKey)
{
string fkTable = col.ForeignKeyTableName;
SqlQuery qry = new Select(col.Table.Provider).From(fkTable);
//Query qry = new Query(DataService.GetSchema(fkTable, ProviderName, TableType.Table));
DropDownList ddl = new DropDownList {ID = col.ColumnName};
AddRow(tbl, fkTable, ddl);
using(IDataReader rdr = qry.ExecuteReader())
{
while(rdr.Read())
ddl.Items.Add(new ListItem(rdr[1].ToString(), rdr[0].ToString()));
rdr.Close();
}
}
else
{
Control ctrl = GetEditControl(col);
AddRow(tbl, Utility.ParseCamelToProper(col.ColumnName), ctrl);
}
}
return tbl;
}
示例5: GetEditControl
/// <summary>
/// Gets the edit control.
/// </summary>
/// <param name="tableColumn">The table column.</param>
/// <returns></returns>
protected Control GetEditControl(TableSchema.TableColumn tableColumn)
{
WebControl cOut = null;
string colName = tableColumn.ColumnName.ToLower();
//use special care with the Primary Key
if(tableColumn.IsPrimaryKey && FindControl(PK_ID + tableColumn.ColumnName) == null)
{
//don't want to edit an auto-increment
if(tableColumn.AutoIncrement || tableColumn.DataType == DbType.Guid)
cOut = new Label();
else
cOut = new TextBox();
cOut.ID = PK_ID + tableColumn.ColumnName;
}
else
{
bool buildForeignKey = false;
if(tableColumn.IsForeignKey)
{
DropDownList ddl = new DropDownList();
ApplyCssClass(ddl, DropDownCssClass);
string fkTableName = tableColumn.ForeignKeyTableName;
if(!String.IsNullOrEmpty(fkTableName))
{
buildForeignKey = true;
TableSchema.Table tbl = DataService.GetSchema(fkTableName, ProviderName, TableType.Table);
TableSchema.TableColumn displayCol = Utility.GetDisplayTableColumn(tbl);
bool isSortable = Utility.GetEffectiveMaxLength(displayCol) < 250;
if(tableColumn.IsNullable)
{
ListItem liNull = new ListItem("(Not Specified)", String.Empty);
ddl.Items.Add(liNull);
}
SqlQuery qry = new Select(tbl.Provider, tbl.Columns[0].ColumnName, displayCol.ColumnName).From(tbl);
if(isSortable)
qry.OrderAsc(displayCol.ColumnName);
using(IDataReader rdr = qry.ExecuteReader())
{
while(rdr.Read())
{
ListItem item = new ListItem(rdr[1].ToString(), rdr[0].ToString());
ddl.Items.Add(item);
}
rdr.Close();
}
cOut = ddl;
}
}
if(!buildForeignKey)
{
switch(tableColumn.DataType)
{
case DbType.Guid:
case DbType.AnsiString:
case DbType.String:
case DbType.StringFixedLength:
case DbType.Xml:
case DbType.Object:
case DbType.AnsiStringFixedLength:
if(Utility.MatchesOne(colName, ReservedColumnName.CREATED_BY, ReservedColumnName.MODIFIED_BY))
cOut = new Label();
else
{
TextBox t = new TextBox();
if(Utility.GetEffectiveMaxLength(tableColumn) > 250)
{
t.TextMode = TextBoxMode.MultiLine;
t.Columns = 60;
t.Rows = 4;
}
else
{
t.Width = Unit.Pixel(250);
if(colName.EndsWith("guid", StringComparison.InvariantCultureIgnoreCase))
{
t.Text = Guid.NewGuid().ToString();
t.Enabled = false;
}
}
cOut = t;
}
break;
case DbType.Binary:
//do nothing
break;
case DbType.Boolean:
CheckBox chk = new CheckBox();
//.........这里部分代码省略.........