我的數據庫有一個像字段: ID(nvarchar的),開始日期(日期),結束日期(日期),狀態(位)我如何保存解析的HTML到一個數據庫和數據庫中的比較值
我目前正在解析HTML網站,以便比較2個值(1從我的本地數據庫,其他來自網站),以確定它們是否相同。如果他們是相同的價值 - 完美。但是,如果日期或狀態相差超過7天或狀態顯示爲不活動而不是活動(反之亦然),我希望它'添加到最終報告',其中經過所有值後在桌面上存儲report.txt文件(不確定)
SqlConnection conn = new SqlConnection(Properties.Settings.Default.LenovoWarrantyConnectionString);
conn.Open();
ArrayList lenovolist = new ArrayList();
SqlCommand myCommand = conn.CreateCommand();
myCommand.CommandText = ("SELECT SerialNumber from Warranty");
SqlDataReader myReader = myCommand.ExecuteReader();
int count = myReader.FieldCount;
while (myReader.Read())
{
for (int i = 0; i < count; i++)
{
//Loop through Serial Numbers
string result = myReader.GetValue(i).ToString();
//Iterate through Lenovo's Serial Checker 1 by 1
webBrowser1.Document.GetElementById("serialCode").Focus();
webBrowser1.Document.GetElementById("serialCode").InnerText = result;
webBrowser1.Document.GetElementById("warrantySubmit").InvokeMember("Click");
Thread.Sleep(500);
MessageBox.Show("Script Completed");
//Get System Summary Info
foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div"))
if (el.GetAttribute("className") == "fluid-row firstfluid")
{
var record = el.InnerText;
lenovolist.Add(record);
//MessageBox.Show(record, "System Summary");
}
//Get Base Warranty, Warranty Upgrade, and Priority Support
foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div"))
if (el.GetAttribute("className") == "fluid-row Borderfluid")
{
var record1 = el.InnerText;
lenovolist.Add(record1);
MessageBox.Show(record1, "Base Warranty, Warranty Upgrade, Priority Support");
}
}
}
foreach (var items in lenovolist)
{
MessageBox.Show(items.ToString());
}
我在數據庫中有大約300行。
起初,我想過一個ArrayList中存儲解析HTML以比較然而數據庫 - 我現在需要存儲解析信息進入數據庫(除非日期/狀態是不同的)
在先進的感謝對該
目前尚不清楚你在哪裏卡住。理想情況下,您將構建一個表示數據的一個「對象」的類(少數值)。該類將包含比較它們的邏輯。根據數據庫中的內容構建類的實例,根據HTML中的內容構建另一個實例,並比較類的兩個實例。看起來你可能會讓這個過於複雜。 – David
你能告訴我一個比較它們的邏輯的例子嗎?我不太清楚我怎麼也找不到可靠的資源 – Havoux
那麼,你已經描述了一些邏輯:'「如果日期或狀態相差超過7天,或狀態顯示不活動而不是活動」'你是否詢問如何比較兩個'DateTime'值來查看它們是否超過7天?如何比較兩個字符串值以查看它們是否不同?老實說,問題並不清楚。 – David