程序要求 类似发帖机的东西先从本地数据库循环读取记录 然后打开对方网站发帖(已登录) 因为对方网站有很多隐藏的JS等其他信息 所以采用webbrowser 进行发帖我现在的做法是这样 比如 我数据库里有20条记录 需要发到对方网站
while (sdr.Read() && !IsPost)
{
读取本地数据库记录 把需要上传的数据放在全局变量里
title= sdr["title"].tostring();
...............
然后跳转到网站的发帖界面 this.webBrowser1.Navigate("add.jsp ");
}第二步
然后 在webBrowser1_DocumentCompleted 里模拟提交 如果提交成功 它们会跳转到另一个页面
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.webBrowser1.Document.Url.AbsoluteUri =="http://xxxxx/add.jsp")
{
this.webBrowser1.Document.All["title"].SetAttribute("value", title);
...................
doc.GetElementById("fabu_button").InvokeMember("click"); 调用按钮点击事件发布成功网站会返回下面的信息 <script language=javascript>
alert('发布成功!');
location.href="index.jsp";
</script>
第三步
我再在webBrowser1_Navigated 事件里扑捉返回的文本 还花了一些周折屏蔽alert
然后判断 this.webBrowser1.DocumentText.Contains("发布成功") 将本地的这条数据做个标记更新为 已上传
问题是.. 无法回到第一步 while (sdr.Read() ) 这步继续下一条记录了也就是说只执行一次. .我感觉我哪里做的不对. 请各位大侠指定12
while (sdr.Read() && !IsPost)
{
读取本地数据库记录 把需要上传的数据放在全局变量里
title= sdr["title"].tostring();
...............
然后跳转到网站的发帖界面 this.webBrowser1.Navigate("add.jsp ");
}第二步
然后 在webBrowser1_DocumentCompleted 里模拟提交 如果提交成功 它们会跳转到另一个页面
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.webBrowser1.Document.Url.AbsoluteUri =="http://xxxxx/add.jsp")
{
this.webBrowser1.Document.All["title"].SetAttribute("value", title);
...................
doc.GetElementById("fabu_button").InvokeMember("click"); 调用按钮点击事件发布成功网站会返回下面的信息 <script language=javascript>
alert('发布成功!');
location.href="index.jsp";
</script>
第三步
我再在webBrowser1_Navigated 事件里扑捉返回的文本 还花了一些周折屏蔽alert
然后判断 this.webBrowser1.DocumentText.Contains("发布成功") 将本地的这条数据做个标记更新为 已上传
问题是.. 无法回到第一步 while (sdr.Read() ) 这步继续下一条记录了也就是说只执行一次. .我感觉我哪里做的不对. 请各位大侠指定12
我该怎么改进程序呢
如果用集合的for 或者foreach 循环 也是跳出循环了吧
或者我用datatable ?
别讨论用途了 讨论技术吧 哎..