<pre name="code" class="csharp"> /// <summary>
/// 通过条件查出信息
/// </summary>
/// <param name="dt"></param>
/// <param name="str">查询条件</param>
/// <returns></returns>
public Record[] GetRecords(DataTable dt,string str)
{
DataRow[] rows= dt.Select(str);
Record[] items = new Record[rows.Length];
for (int i = 0; i < rows.Length; i++)
{
Record record = new Record();
record.ChannelId = (string)rows[i]["ChannelId"];
record.StartTime = (string)rows[i]["StartTime"];
record.EndTime = (string)rows[i]["EndTime"];
record.lastTime = (string)rows[i]["LastTime"];
record.Number = (string)rows[i]["Number"];
items[i] = record;
}
return items;
}
/// <summary>
/// 读取文本到DataTable中
/// </summary>
/// <param name="str">文件路径</param>
/// <returns></returns>
public DataTable ReadToDataTable(string str)
{
DataTable dt = new DataTable();
using (StreamReader objReader = new StreamReader(str,Encoding.Default))
{
dt.Columns.Add("ChannelId", System.Type.GetType("System.String"));
dt.Columns.Add("StartTime", System.Type.GetType("System.String"));
dt.Columns.Add("EndTime", System.Type.GetType("System.String"));
dt.Columns.Add("LastTime", System.Type.GetType("System.String"));
dt.Columns.Add("Number", System.Type.GetType("System.String"));
string sLine = "";
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null && !sLine.Equals(""))
{
DataRow dr = dt.NewRow();
string[] values = sLine.Split('\t');
dr["ChannelId"] = values[0];
dr["StartTime"] = values[1];
dr["EndTime"] = values[2];
dr["LastTime"] = values[3];
dr["Number"] = values[4];
dt.Rows.Add(dr);
}
}
objReader.Close();
}
return dt;
}
从DataTable中查询可以用一下两种方法
一:DataView
/// <summary>
/// 从DataTable中查询数据
/// </summary>
/// <param name="dt">DataTable对象</param>
/// <param name="str">查询条件</param>
/// <returns>返回一个DataView对象</returns>
public DataView GetDv(DataTable dt, string str)
{
DataView dv = new DataView(dt);
dv.RowFilter = str;
return dv;
}
/// <summary>
/// 通过条件查出信息
/// </summary>
/// <param name="dt"></param>
/// <param name="str">查询条件</param>
/// <returns></returns>
public Record[] GetRecords(DataTable dt,string str)
{
DataRow[] rows= dt.Select(str);
Record[] items = new Record[rows.Length];
for (int i = 0; i < rows.Length; i++)
{
Record record = new Record();
record.ChannelId = (string)rows[i]["ChannelId"];
record.StartTime = (string)rows[i]["StartTime"];
record.EndTime = (string)rows[i]["EndTime"];
record.lastTime = (string)rows[i]["LastTime"];
record.Number = (string)rows[i]["Number"];
items[i] = record;
}
return items;
}