我目前正在尝试使用OleDb
从Access数据库获取信息。
我有一行包含用户的日期,时间等(日志),我正在使用以下方法检索它们:
connection.Open();
oledbAdapter = new OleDbDataAdapter(Sql, connection);
DataSet dsSet = new DataSet();
oledbAdapter.Fill(dsSet);
foreach (DataRow row in dsSet.Tables[0].Rows)
{
rawList.Add(row["Running"].ToString());
}
var show = String.Join(null, rawList.ToArray());
我的数据库中有以下文字:
|| 04-05-2015 | 7:10 | 2 | 5 mph
|| 04-05-2015 | 12:10 | 1 | 8 mph
我使用Regex
分隔了2个会话:
var doubleVBarSplit = Regex.Split(show, " \\|\\| ");
并使用相同的方式在一个会话中分隔数据。但我无法弄清楚的是如何将更多的会话彼此分开,并将日期,时间,持续时间,速度放在单独的字符串中,以便我可以显示它们。
有人可以指导我如何做到这一点吗?谢谢!
答案 0 :(得分:0)
我会创建一个新类,然后将数据库每一行的值分配给新类。然后我会将每一行添加到该类的List中。然后,您可以根据需要显示此课程。另外,你说"会话"但我相信你的意思是"记录"。代码
public class Result
{
public Result()
{ }
public string aDate { get; set; }
public string Time { get; set; }
public string Marker { get; set; }
public string speed { get; set; }
}
...
char pipe = Convert.ToChar("|");
string[] splits = null;
List<Result> ResultList = new List<Result>();
foreach (DataRow row in dsSet.Tables[0].Rows)
{
result = new Result();
splits = String.Format("{0}",row["Running"]).Split(pipe);
result.aDate = String.Format("{0}", splits[2]);
result.Time = String.Format("{0}", splits[3]);
result.Marker = String.Format("{0}", splits[4]);
result.speed = String.Format("{0}", splits[5]);
ResultList.Add(result);
}
然后您可以按如下方式轻松显示它们:
foreach(Result aresult in ResultList) {
String.Format("{0}", aresult.aDate);
aresult.Time;
String.Format("{0}", aresult.Marker);
aresult.Speed;
}