程序要求 类似发帖机的东西先从本地数据库循环读取记录 然后打开对方网站发帖(已登录) 因为对方网站有很多隐藏的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

解决方案 »

  1.   

    感谢1 2 楼
     我该怎么改进程序呢
    如果用集合的for 或者foreach 循环 也是跳出循环了吧
    或者我用datatable ?
      

  2.   

    一听就不是正规的工作,难怪苦逼。也许lz说这个不是发小广告是什么别的用途。但是别的用途应该开放API,直接调用。如同lz每次回家都是翻墙,别人以为lz是小偷,lz觉得很冤枉,说这个是我家啊。但是我家没有门,只能翻墙。我只能说这个房子设计得很缺心眼,很不正规。lz日复一日翻墙不觉得累,也不知道修一个门。
      

  3.   

    没办法 对方用JAVA做的 水平菜 和他们说了 他们不懂怎么开发API 网页的代码写的也垃圾 页面里到处看的到SQL语句 但是他们有关系所以烂归烂凑合用. 下面使用者的就惨了啊.只好开发个小程序代替..
    别讨论用途了 讨论技术吧 哎..