DVPHP2论坛 对 PW 7.3.2的数据转移
下载:http://bbs.crsite.cn/read.php?tid=273
在原有DVPHP 2平台上,运行本论坛已经有一段时间,对于DVPHP,个人感觉跟DISCUZ,PW还是有一定的差距
在实施转移的时候,尽然没发现支持的转换程序
所以自己写了一个。 有感兴趣的可以研究下
还是声明下:此程序只是满足自已论坛数据转换开发的,并不是很完善
1
2 //来源:http://bbs.crsite.cn/read.php?tid=273
3
4 #region 帖子标题
5 MySqlCommand __m = new MySqlCommand();
6 __m.Connection = new MySqlConnection(datconn);
7 __m.Connection.Open();
8
9 __m.CommandText = "TRUNCATE TABLE cr_members";
10 __m.ExecuteNonQuery();
11 __m.CommandText = "TRUNCATE TABLE cr_memberdata";
12 __m.ExecuteNonQuery();
13 __m.CommandText = "TRUNCATE TABLE cr_threads";
14 __m.ExecuteNonQuery();
15 __m.CommandText = "TRUNCATE TABLE cr_tmsgs";
16 __m.ExecuteNonQuery();
17 __m.CommandText = "TRUNCATE TABLE cr_forums";
18 __m.ExecuteNonQuery();
19
20 MySqlCommand mc = new MySqlCommand("select * from dv_topic", new MySqlConnection(connStr));
21 mc.Connection.Open();
22 MySqlDataReader reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
23
24 MySqlCommand insert = new MySqlCommand("insert into cr_threads(fid,author,authorid,subject,postdate,lastpost,lastposter,tid,ifcheck) values (?fid,?author,?authorid,?subject,?postdate,?lastpost,?lastposter,?tid,1)",
25 new MySqlConnection(datconn));
26 insert.Connection.Open();
27 insert.Parameters.Add(new MySqlParameter("?fid", MySqlDbType.Int32, 4));
28 insert.Parameters.Add(new MySqlParameter("?author", MySqlDbType.String, 40));
29 insert.Parameters.Add(new MySqlParameter("?authorid", MySqlDbType.Int32, 4));
30 insert.Parameters.Add(new MySqlParameter("?subject", MySqlDbType.String, 40));
31 insert.Parameters.Add(new MySqlParameter("?postdate", MySqlDbType.Int32));
32 insert.Parameters.Add(new MySqlParameter("?lastpost", MySqlDbType.Int32));
33 insert.Parameters.Add(new MySqlParameter("?lastposter", MySqlDbType.String));
34 insert.Parameters.Add(new MySqlParameter("?tid", MySqlDbType.Int32, 4));
35 while (reader.Read())
36 {
37 insert.Parameters[0].Value = reader["boardid"];
38 insert.Parameters[1].Value = reader["postusername"];
39 insert.Parameters[2].Value = reader["postuserid"];
40 insert.Parameters[3].Value = reader["title"];
41 insert.Parameters[4].Value = reader["dateandtime"];
42 insert.Parameters[5].Value = reader["lastposttime"];
43 insert.Parameters[6].Value = reader["lastpost"].ToString().Split('$')[0];
44 insert.Parameters[7].Value = reader["topicid"];
45 insert.ExecuteNonQuery();
46 }
47 reader.Close();
48 insert.Connection.Close();
49 insert.Dispose();
50 #endregion
51 #region 帖子内容
52 mc = new MySqlCommand();
53 mc.CommandText = "select rootid,body,ip from dv_bbs1 where parentid=0";
54 mc.Connection = new MySqlConnection(connStr);
55 mc.Connection.Open();
56 reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
57 //insert.Parameters.Clear();
58 insert = new MySqlCommand();
59 insert.Connection = new MySqlConnection(datconn);
60 insert.Connection.Open();
61 insert.CommandText = "insert into cr_tmsgs(tid,userip,ipfrom,content,aid,buy,magic) values (?tid,?userip,?ipfrom,?content,'','','')";
62 insert.Parameters.Add(new MySqlParameter("?tid", MySqlDbType.Int32));
63 insert.Parameters.Add(new MySqlParameter("?userip", MySqlDbType.String, 40));
64 insert.Parameters.Add(new MySqlParameter("?ipfrom", MySqlDbType.String, 40));
65 insert.Parameters.Add(new MySqlParameter("?content", MySqlDbType.Text));
66 while (reader.Read())
67 {
68
69 insert.Parameters[0].Value = int.Parse(reader["rootid"].ToString());
70 insert.Parameters[1].Value = reader["ip"].ToString();
71 insert.Parameters[2].Value = "未知";
72 insert.Parameters[3].Value = this.BodyUBB(reader["body"].ToString());
73 insert.ExecuteNonQuery();
74 }
75 reader.Close();
76 insert.Connection.Close();
77 insert.Dispose();
78 #endregion
79 #region 用户
80 mc = new MySqlCommand();
81 mc.CommandText = "select * from dv_user";
82 mc.Connection = new MySqlConnection(connStr);
83 mc.Connection.Open();
84 reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
85 insert = new MySqlCommand();
86 insert.Connection = new MySqlConnection(datconn);
87 insert.Connection.Open();
88 insert.CommandText = "insert into cr_members(uid,username,password,email,gender,regdate,userstatus,memberid,signature,introduce,aliww,banpm) values (?uid,?username,?password,?email,?gender,?regdate,?userstatus,8,'','','','')";
89 insert.Parameters.Add(new MySqlParameter("?uid", MySqlDbType.Int32));
90 insert.Parameters.Add(new MySqlParameter("?username", MySqlDbType.String, 40));
91 insert.Parameters.Add(new MySqlParameter("?password", MySqlDbType.String, 40));
92 insert.Parameters.Add(new MySqlParameter("?email", MySqlDbType.String));
93 insert.Parameters.Add(new MySqlParameter("?gender", MySqlDbType.Int32));
94 insert.Parameters.Add(new MySqlParameter("?regdate", MySqlDbType.Int32));
95 insert.Parameters.Add(new MySqlParameter("?userstatus", MySqlDbType.Int32));
96 //reader.Read();
97 while (reader.Read())
98 {
99 try
100 {
101 insert.Parameters[0].Value = reader[0];
102 insert.Parameters[1].Value = reader["username"];
103 insert.Parameters[2].Value = reader["userpassword"];
104 insert.Parameters[3].Value = reader["useremail"];
105 insert.Parameters[4].Value = reader["usersex"];
106 insert.Parameters[5].Value = reader["joindate"];
107 insert.Parameters[6].Value = 1024;
108 insert.ExecuteNonQuery();
109 }
110 catch(Exception E)
111 {
112 continue;
113 }
114 __m.CommandText = "INSERT INTO cr_memberdata VALUES ({0}, {1}, 0, 0, 0, 0, 0, {2}, {2}, 0, 0, 0, 0, 0, 0, 0, '{3}', 0, '', 1244454413, 0, '');";
115 __m.CommandText = string.Format(__m.CommandText,
116 reader[0].ToString(),
117 reader["usertopic"].ToString(),
118 reader["lastlogin"].ToString(),
119 reader["userlastip"].ToString()
120 );
121 __m.ExecuteNonQuery();
122 }
123 reader.Close();
124 #endregion
125 mc = new MySqlCommand();
126 mc.CommandText = "SELECT boardid,boardtype,parentid,parentstr,depth,rootid,child,todaynum,orders,readme,boardmaster,postnum,topicnum,indeximg FROM dv_Board";
127 mc.Connection = new MySqlConnection(connStr);
128 mc.Connection.Open();
129 reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
130 while (reader.Read())
131 {
132 string s = "INSERT INTO cr_forums (fid,fup,ifsub,childid,type,logo,name,descrip,vieworder,forumadmin,fupadmin) VALUES(" +
133 reader["boardid"].ToString() + "," +
134 reader["parentid"].ToString() + ",0," +
135 (reader["depth"].ToString() == "0" ? "1" : "0") + ",'" +
136 (reader["depth"].ToString() == "0" ? "category" : "forum") + "','','" +
137 reader[1].ToString() + "','" + reader["readme"].ToString() + "'," +
138 reader["orders"].ToString() + ",'" + reader["boardmaster"].ToString() + "','')";
139 __m.CommandText = s;
140 __m.ExecuteNonQuery();
141 }
142 reader.Close();
143 __m.Connection.Close();
144 __m.Dispose();
145 Console.WriteLine("==============================================");
146
2 //来源:http://bbs.crsite.cn/read.php?tid=273
3
4 #region 帖子标题
5 MySqlCommand __m = new MySqlCommand();
6 __m.Connection = new MySqlConnection(datconn);
7 __m.Connection.Open();
8
9 __m.CommandText = "TRUNCATE TABLE cr_members";
10 __m.ExecuteNonQuery();
11 __m.CommandText = "TRUNCATE TABLE cr_memberdata";
12 __m.ExecuteNonQuery();
13 __m.CommandText = "TRUNCATE TABLE cr_threads";
14 __m.ExecuteNonQuery();
15 __m.CommandText = "TRUNCATE TABLE cr_tmsgs";
16 __m.ExecuteNonQuery();
17 __m.CommandText = "TRUNCATE TABLE cr_forums";
18 __m.ExecuteNonQuery();
19
20 MySqlCommand mc = new MySqlCommand("select * from dv_topic", new MySqlConnection(connStr));
21 mc.Connection.Open();
22 MySqlDataReader reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
23
24 MySqlCommand insert = new MySqlCommand("insert into cr_threads(fid,author,authorid,subject,postdate,lastpost,lastposter,tid,ifcheck) values (?fid,?author,?authorid,?subject,?postdate,?lastpost,?lastposter,?tid,1)",
25 new MySqlConnection(datconn));
26 insert.Connection.Open();
27 insert.Parameters.Add(new MySqlParameter("?fid", MySqlDbType.Int32, 4));
28 insert.Parameters.Add(new MySqlParameter("?author", MySqlDbType.String, 40));
29 insert.Parameters.Add(new MySqlParameter("?authorid", MySqlDbType.Int32, 4));
30 insert.Parameters.Add(new MySqlParameter("?subject", MySqlDbType.String, 40));
31 insert.Parameters.Add(new MySqlParameter("?postdate", MySqlDbType.Int32));
32 insert.Parameters.Add(new MySqlParameter("?lastpost", MySqlDbType.Int32));
33 insert.Parameters.Add(new MySqlParameter("?lastposter", MySqlDbType.String));
34 insert.Parameters.Add(new MySqlParameter("?tid", MySqlDbType.Int32, 4));
35 while (reader.Read())
36 {
37 insert.Parameters[0].Value = reader["boardid"];
38 insert.Parameters[1].Value = reader["postusername"];
39 insert.Parameters[2].Value = reader["postuserid"];
40 insert.Parameters[3].Value = reader["title"];
41 insert.Parameters[4].Value = reader["dateandtime"];
42 insert.Parameters[5].Value = reader["lastposttime"];
43 insert.Parameters[6].Value = reader["lastpost"].ToString().Split('$')[0];
44 insert.Parameters[7].Value = reader["topicid"];
45 insert.ExecuteNonQuery();
46 }
47 reader.Close();
48 insert.Connection.Close();
49 insert.Dispose();
50 #endregion
51 #region 帖子内容
52 mc = new MySqlCommand();
53 mc.CommandText = "select rootid,body,ip from dv_bbs1 where parentid=0";
54 mc.Connection = new MySqlConnection(connStr);
55 mc.Connection.Open();
56 reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
57 //insert.Parameters.Clear();
58 insert = new MySqlCommand();
59 insert.Connection = new MySqlConnection(datconn);
60 insert.Connection.Open();
61 insert.CommandText = "insert into cr_tmsgs(tid,userip,ipfrom,content,aid,buy,magic) values (?tid,?userip,?ipfrom,?content,'','','')";
62 insert.Parameters.Add(new MySqlParameter("?tid", MySqlDbType.Int32));
63 insert.Parameters.Add(new MySqlParameter("?userip", MySqlDbType.String, 40));
64 insert.Parameters.Add(new MySqlParameter("?ipfrom", MySqlDbType.String, 40));
65 insert.Parameters.Add(new MySqlParameter("?content", MySqlDbType.Text));
66 while (reader.Read())
67 {
68
69 insert.Parameters[0].Value = int.Parse(reader["rootid"].ToString());
70 insert.Parameters[1].Value = reader["ip"].ToString();
71 insert.Parameters[2].Value = "未知";
72 insert.Parameters[3].Value = this.BodyUBB(reader["body"].ToString());
73 insert.ExecuteNonQuery();
74 }
75 reader.Close();
76 insert.Connection.Close();
77 insert.Dispose();
78 #endregion
79 #region 用户
80 mc = new MySqlCommand();
81 mc.CommandText = "select * from dv_user";
82 mc.Connection = new MySqlConnection(connStr);
83 mc.Connection.Open();
84 reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
85 insert = new MySqlCommand();
86 insert.Connection = new MySqlConnection(datconn);
87 insert.Connection.Open();
88 insert.CommandText = "insert into cr_members(uid,username,password,email,gender,regdate,userstatus,memberid,signature,introduce,aliww,banpm) values (?uid,?username,?password,?email,?gender,?regdate,?userstatus,8,'','','','')";
89 insert.Parameters.Add(new MySqlParameter("?uid", MySqlDbType.Int32));
90 insert.Parameters.Add(new MySqlParameter("?username", MySqlDbType.String, 40));
91 insert.Parameters.Add(new MySqlParameter("?password", MySqlDbType.String, 40));
92 insert.Parameters.Add(new MySqlParameter("?email", MySqlDbType.String));
93 insert.Parameters.Add(new MySqlParameter("?gender", MySqlDbType.Int32));
94 insert.Parameters.Add(new MySqlParameter("?regdate", MySqlDbType.Int32));
95 insert.Parameters.Add(new MySqlParameter("?userstatus", MySqlDbType.Int32));
96 //reader.Read();
97 while (reader.Read())
98 {
99 try
100 {
101 insert.Parameters[0].Value = reader[0];
102 insert.Parameters[1].Value = reader["username"];
103 insert.Parameters[2].Value = reader["userpassword"];
104 insert.Parameters[3].Value = reader["useremail"];
105 insert.Parameters[4].Value = reader["usersex"];
106 insert.Parameters[5].Value = reader["joindate"];
107 insert.Parameters[6].Value = 1024;
108 insert.ExecuteNonQuery();
109 }
110 catch(Exception E)
111 {
112 continue;
113 }
114 __m.CommandText = "INSERT INTO cr_memberdata VALUES ({0}, {1}, 0, 0, 0, 0, 0, {2}, {2}, 0, 0, 0, 0, 0, 0, 0, '{3}', 0, '', 1244454413, 0, '');";
115 __m.CommandText = string.Format(__m.CommandText,
116 reader[0].ToString(),
117 reader["usertopic"].ToString(),
118 reader["lastlogin"].ToString(),
119 reader["userlastip"].ToString()
120 );
121 __m.ExecuteNonQuery();
122 }
123 reader.Close();
124 #endregion
125 mc = new MySqlCommand();
126 mc.CommandText = "SELECT boardid,boardtype,parentid,parentstr,depth,rootid,child,todaynum,orders,readme,boardmaster,postnum,topicnum,indeximg FROM dv_Board";
127 mc.Connection = new MySqlConnection(connStr);
128 mc.Connection.Open();
129 reader = mc.ExecuteReader(CommandBehavior.CloseConnection);
130 while (reader.Read())
131 {
132 string s = "INSERT INTO cr_forums (fid,fup,ifsub,childid,type,logo,name,descrip,vieworder,forumadmin,fupadmin) VALUES(" +
133 reader["boardid"].ToString() + "," +
134 reader["parentid"].ToString() + ",0," +
135 (reader["depth"].ToString() == "0" ? "1" : "0") + ",'" +
136 (reader["depth"].ToString() == "0" ? "category" : "forum") + "','','" +
137 reader[1].ToString() + "','" + reader["readme"].ToString() + "'," +
138 reader["orders"].ToString() + ",'" + reader["boardmaster"].ToString() + "','')";
139 __m.CommandText = s;
140 __m.ExecuteNonQuery();
141 }
142 reader.Close();
143 __m.Connection.Close();
144 __m.Dispose();
145 Console.WriteLine("==============================================");
146