private void btnHeader_Click(object sender, RoutedEventArgs e) { btnHeader.IsEnabled = false; btnConn.IsEnabled = false; url = txtUrl.Text.Trim(); detailUrl = txtDetailUrl.Text.Trim(); get = txtGET.Text.Trim(); post = txtPOST.Text.Trim(); pageParamName = txtPageParamName.Text.Trim(); pageParamPos = cbbPageParamPos.SelectedItem.ToString(); if (!int.TryParse(txtFirstPageIndex.Text.Trim(), out firstPageIndex)) { firstPageIndex = 1; } bodyRegEx = txtBodyRegEx.Text.Trim(); headerRegEx = txtHeaderRegEx.Text.Trim(); maxPageRegEx = txtMaxPageRegEx.Text.Trim(); appendHeader = txtAppendHeader.Text.Trim(); appendBodyRegEx = txtAppendBodyRegEx.Text.Trim(); key = txtKey.Text.Trim(); tableName = txtTableName.Text.Trim(); string html = HtmlHandler.GetHtml(url, get, post, pageParamName, 1, pageParamPos == "POST"); lstHeader = HtmlHandler.ParseHeader(html, headerRegEx, maxPageRegEx, out minPage, out maxPage); minPage -= (1 - firstPageIndex); maxPage -= (1 - firstPageIndex); if (!string.IsNullOrEmpty(appendHeader)) { int index = appendHeader.IndexOf('-'); if (index > 0) { int.TryParse(appendHeader.Substring(0, index), out detailUrlIndex); } if (index + 1 < appendHeader.Length) { lstHeader.AddRange(appendHeader.Substring(index + 1).Split(',')); } } if (lstHeader.Count <= 0) { lblTip.Content = "未获取到表头。"; btnHeader.IsEnabled = true; btnConn.IsEnabled = true; return; } try { db.Execute("drop table " + tableName + ""); } catch { } string dataType = connType == "OleDb" ? "text" : "nvarchar(MAX)"; strHeader = ""; StringBuilder sbFields = new StringBuilder(); keyIndex = 0; for (int index = 0; index < lstHeader.Count; index++) { sbFields.Append(string.Format("{0} {1},", lstHeader[index].Trim(), dataType)); strHeader += "" + lstHeader[index].Trim() + ","; if (lstHeader[index].Trim() == key) { keyIndex = index; } } string sql = string.Format(@"create table {0}( {1} )", tableName, sbFields.ToString().TrimEnd(',')); try { db.Execute(sql); lblTip.Content = "表头获取成功,表创建成功,共" + (maxPage + (1 - firstPageIndex)) + "页。"; } catch (Exception ex) { lblTip.Content = null == ex.InnerException ? ex.Message : ex.InnerException.Message; } btnBody.IsEnabled = true; btnHeader.IsEnabled = true; btnConn.IsEnabled = true; }