public class InnovationSubmission
{
public OleDbConnection connectr = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DatabaseTEST.accdr;Jet OLEDB:Database Password=DWPOIT");
public OleDbDataAdapter Adaptor = new OleDbDataAdapter();
private List<SelectListItem> _Area = new List<SelectListItem>();
private List<SelectListItem> _Team = new List<SelectListItem>();
public int ID { get; set; }
[Required(ErrorMessage="Please enter a short description")]
public string ShortDescription { get; set; }
[Required(ErrorMessage = "Please enter a detailed description")]
public string DetailedDescription { get; set; }
public string Status { get; set; }
[Required(ErrorMessage = "Please enter your name")]
public string Originator { get; set; }
[Required(ErrorMessage = "Please enter your email address")]
[RegularExpression(".+\\@.+\\..+",
ErrorMessage = "Please enter a valid email address")]
public string OriginatorEmail { get; set; }
[Required]
public string SelectedArea { get; set; }
[Required]
public string SelectedTeam { get; set; }
public List<SelectListItem> Area
{
get { return _Area; }
}
public List<SelectListItem> Teams
{
get
{
string SQLSelect = ("SELECT * FROM Teams");
OleDbCommand sCommand = new OleDbCommand(SQLSelect, connectr);
Adaptor.SelectCommand = sCommand;
connectr.Open();
Adaptor.Fill(areaTable);
connectr.Dispose();
foreach (DataRow row in areaTable.Rows)
{
_Team.Add(new SelectListItem() { Text = row[1].ToString(), Value = row[1].ToString() });
}
return _Team;
}
}
public DataTable areaTable = new DataTable();
}
}
質問する
105 次
2 に答える
1
私には、コネクタ オブジェクトに問題があるようです。おそらく他の場所で使用されているため、例外が発生します。新しい接続を開き、クエリを実行して閉じます。using
using ブロック内でそれを達成し、クエリを実行してみてください。
また、コメントで既に述べたように、プロパティ ゲッターで db クエリを実行することはあまりお勧めできません。奇妙でハッキーに見えます...
于 2012-07-03T14:52:41.220 に答える
-1
このまま使えば大丈夫!
public List<SelectListItem> Teams
{
get
{
string SQLSelect = ("SELECT * FROM Teams");
OleDbCommand sCommand = new OleDbCommand(SQLSelect, connector);
Adaptor.SelectCommand = sCommand;
connector.Open();
Adaptor.Fill(areaTable);
connector.Dispose();
foreach (DataRow row in areaTable.Rows)
{
_Team.Add(new SelectListItem() { Text = row[1].ToString(), Value = row[1].ToString() });
}
return _Team;
}
}
于 2012-07-03T14:53:39.740 に答える