海南省BIM中心

 找回密码
 注册请加微信xycost

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1436|回复: 0

使用C#批量修改dz论坛主题的发帖人

  [复制链接]

310

主题

403

帖子

23万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
234943
QQ
发表于 2014-8-15 09:52:58 | 显示全部楼层 |阅读模式

        对于很多使用dz论坛运营的站长们,初始为了吸引人气可能会使用采集器,但论坛上全部都是几个用户在发帖回贴。于是便使用C#来批量修改发帖人和回贴人,制造论坛用户活跃的假象。代码如下,需要详细的请联系本站长。使用时需要使用MYSQL数据库连接库mysql-connector-net-6.8.3,注意MYSQL不支持OLEDB的自动更新语句,需要手工写更新代码。

  1.         DataSet DiscuzDZDS = new DataSet();
  2.             string DZConnectionString = "server=localhost;user id=root; password=*; database=ultrax; pooling=false;charset=utf8 ";
  3.             string SqlText = "SELECT  uid,username FROM pre_common_member order by regdate limit 100 ";// "dnt_users";
  4.             //MySqlConnection connection = new MySqlConnection(DZConnectionString);
  5.             //connection.Open();
  6.             MySqlDataAdapter users_newsAdapter = new MySqlDataAdapter(SqlText, DZConnectionString);
  7.             MySqlCommandBuilder users_newsCommandBuilder = new MySqlCommandBuilder(users_newsAdapter);

  8.             users_newsAdapter.Fill(DiscuzDZDS, "pre_common_member");
  9.             //List<int> ID = new List<int>();



  10.             string topicSqlText = "SELECT * FROM pre_forum_thread where author='xycost'";// "dnt_topics";
  11.             MySqlDataAdapter dz_topicAdapter = new MySqlDataAdapter(topicSqlText, DZConnectionString);
  12.             //MySqlCommandBuilder dz_topicCommandBuilder = new MySqlCommandBuilder(dz_topicAdapter);
  13.             dz_topicAdapter.Fill(DiscuzDZDS, "pre_forum_thread");

  14.             DataRow[] PostRows = DiscuzDZDS.Tables["pre_forum_thread"].Select();

  15.             int postnum = 0;
  16.             for (int j = 0; j < PostRows.Length; j++)
  17.             {
  18.                 //if (j == 1)
  19.                 //    break;
  20.                 DataRow TopicsRow = PostRows[j];
  21.                 Random random = new Random();
  22.                 int UserNum = random.Next(1, DiscuzDZDS.Tables["pre_common_member"].Select().Length);
  23.                 DataRow UserRow = DiscuzDZDS.Tables["pre_common_member"].Select()[UserNum];
  24.      
  25.                 int uid = Convert.ToInt32(UserRow["uid"]);
  26.                 string username = UserRow["username"].ToString();
  27.                 postnum++;

  28.                 //TopicsRow["author"] = username;
  29.                 //TopicsRow["authorid"] = uid;
  30.                 int tid =Convert.ToInt32( TopicsRow["tid"]);
  31.           try
  32.                 {
  33.                     string sql = "update pre_forum_thread set author=?author,authorid=?authorid where tid=?tid";
  34.                     MySqlParameter[] parameters = new MySqlParameter[3];
  35.                     parameters[0] = new MySqlParameter("?author", MySqlDbType.VarChar, 50);
  36.                     parameters[0].Value = username ;
  37.                     parameters[1] = new MySqlParameter("?authorid", MySqlDbType.Int32);
  38.                     parameters[1].Value = uid;
  39.                   
  40.                     parameters[2] = new MySqlParameter("?tid", MySqlDbType.Int32);
  41.                     parameters[2].Value = tid;

  42.                     ExecuteNonQuery(sql, parameters,DZConnectionString);

  43.                     string postSqlText = "SELECT * FROM pre_forum_post where tid="+tid;// "dnt_topics";
  44.                     MySqlDataAdapter dz_postAdapter = new MySqlDataAdapter(postSqlText, DZConnectionString);
  45.                     //MySqlCommandBuilder dz_postCommandBuilder = new MySqlCommandBuilder(dz_postAdapter);
  46.                     if (DiscuzDZDS.Tables.Contains("pre_forum_post"))
  47.                         DiscuzDZDS.Tables["pre_forum_post"].Clear();
  48.                     dz_postAdapter.Fill(DiscuzDZDS, "pre_forum_post");

  49.                   
  50.                     foreach (DataRow postrow in DiscuzDZDS.Tables["pre_forum_post"].Select())
  51.                     {
  52.                         sql = "update pre_forum_post set author=?author,authorid=?authorid where pid=?pid";
  53.                         int pid = Convert.ToInt32(postrow["pid"]);  
  54.                         if (Convert.ToInt32(postrow["first"]) == 1)
  55.                         {
  56.                             parameters = new MySqlParameter[3];
  57.                             parameters[0] = new MySqlParameter("?author", MySqlDbType.VarChar, 50);
  58.                             parameters[0].Value = username;
  59.                             parameters[1] = new MySqlParameter("?authorid", MySqlDbType.Int32);
  60.                             parameters[1].Value = uid;
  61.                             parameters[2] = new MySqlParameter("?pid", MySqlDbType.Int32);
  62.                             parameters[2].Value = pid;
  63.                         }
  64.                         else
  65.                         {
  66.                             UserNum = random.Next(1, DiscuzDZDS.Tables["pre_common_member"].Select().Length);
  67.                             UserRow = DiscuzDZDS.Tables["pre_common_member"].Select()[UserNum];
  68.                             uid = Convert.ToInt32(UserRow["uid"]);
  69.                             username = UserRow["username"].ToString();
  70.                             parameters = new MySqlParameter[3];
  71.                             parameters[0] = new MySqlParameter("?author", MySqlDbType.VarChar, 50);
  72.                             parameters[0].Value = username;
  73.                             parameters[1] = new MySqlParameter("?authorid", MySqlDbType.Int32);
  74.                             parameters[1].Value = uid;
  75.                             parameters[2] = new MySqlParameter("?pid", MySqlDbType.Int32);
  76.                             parameters[2].Value = pid;
  77.                         }
  78.                         ExecuteNonQuery(sql, parameters, DZConnectionString);
  79.                     }
  80.                     //DataTable changes = DiscuzDZDS.Tables["pre_forum_post"].GetChanges();
  81.                     //dnt_topicsAdapter.Update(changes);
  82.                     //DiscuzDZDS.Tables["pre_forum_post"].AcceptChanges();
  83.                     //dnt_topicsAdapter.Update(DiscuzDZDS, "pre_forum_post");
  84.                 }
  85.                 catch(Exception ){}
  86.               }  
  87.             
复制代码




回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /2 下一条


QQ|小黑屋|手机版|Archiver|ChinaBIM ( 琼ICP备14001050号-1 )

GMT+8, 2024-12-22 16:14 , Processed in 0.028606 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表