没有数据库,直接从网页抓取的后台代码,用一个正则表达式,筛选出N条记录,现在数据在list(这就是数据)
WebRequest request = WebRequest.Create(wangzhi);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
string htmlcode;
string zongtext = null;
ArrayList list = new ArrayList();
htmlcode = reader.ReadToEnd();
string strregex = "(?<=(target=\"_blank\">)).*?(?=</a>)";
Regex r = new Regex(strregex, RegexOptions.IgnoreCase);
MatchCollection m = r.Matches(htmlcode);
——————————————————————————————————————————————以上是获取网页源代码 不用看,关键是下边
for (int i = 0; i < m.Count; i++)
{
zongtext += m[i].ToString();//取值
list.Add(zongtext);//添加listDataTable dt = new DataTable();//创建datatable
dt.Columns.Add("x", System.Type.GetType("System.String"));
dt.Rows.Add(new object[] {list[i].ToString(),"BBBB","CCCC"});
this.dataGridView1.DataSource = dt;
运行结果为全部数据显示在第一行的第一列里
如何才能在第一列里多行显示 有多少数据 显示多少行?
WebRequest request = WebRequest.Create(wangzhi);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
string htmlcode;
string zongtext = null;
ArrayList list = new ArrayList();
htmlcode = reader.ReadToEnd();
string strregex = "(?<=(target=\"_blank\">)).*?(?=</a>)";
Regex r = new Regex(strregex, RegexOptions.IgnoreCase);
MatchCollection m = r.Matches(htmlcode);
——————————————————————————————————————————————以上是获取网页源代码 不用看,关键是下边
for (int i = 0; i < m.Count; i++)
{
zongtext += m[i].ToString();//取值
list.Add(zongtext);//添加listDataTable dt = new DataTable();//创建datatable
dt.Columns.Add("x", System.Type.GetType("System.String"));
dt.Rows.Add(new object[] {list[i].ToString(),"BBBB","CCCC"});
this.dataGridView1.DataSource = dt;
运行结果为全部数据显示在第一行的第一列里
如何才能在第一列里多行显示 有多少数据 显示多少行?
DataTable dt = new DataTable();放到循环外面去
你这样写的话每次循环都把 dt的值初始化了一次
zongtext += m[i].ToString()+'#';
for (int i = 0; i < m.Count; i++)
{
zongtext += m[i].ToString()+'#';
}
然后在字符串查找分割符号'#',有多少个,就证明有多少行再用SPLIT 方法将其以'#'分开存于一个string 数组里然后DATABLE 绑定该数组即可以
for (int i = 0; i < m.Count; i++)
{
zongtext += m[i].ToString();
list.Add(zongtext);
test t = new test();
t.Code = m[i].ToString();
tList.Add(t);
}
this.dataGridView1.DataSource = tList;——————————————————————————————
public class test
{
private string _code;
public string Code { get { return _code; } set { _code = value; } }
}