コード例 #1
0
 private void btnCreatPinYin_Click(object sender, EventArgs e)
 {
     try
     {
         string     quanpin = this.addColumn("quanpin");
         string     shouZim = this.addColumn("szm");
         string     hanzi   = this.cmbHanZi.SelectedItem.ToString();
         NameObject nobject = new NameObject();
         nobject.hanzi     = hanzi;
         nobject.shouZim   = shouZim;
         nobject.quanpin   = quanpin;
         nobject.tableName = this.cmbTableName.SelectedItem.ToString();
         ParameterizedThreadStart pt = new ParameterizedThreadStart(this.DoSomthing);
         Thread t = new Thread(pt);
         t.Start(nobject);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #2
0
        private void DoSomthing(object nobject)
        {
            try
            {
                NameObject nameObject = nobject as NameObject;
                string     quanpin    = nameObject.quanpin;
                string     shouZim    = nameObject.shouZim;
                string     hanzi      = nameObject.hanzi;
                string     tableName  = nameObject.tableName;
                string     msg2       = "开始获取所有数据信息";
                if (this.OnProcessNotify != null)
                {
                    this.OnProcessNotify(msg2, 0);
                }
                string sqlString = "SELECT gid," + hanzi + "," + quanpin + "," + shouZim + " FROM " + tableName
                                   + " where " + hanzi + " is not null and (szm is  null or szm = '')";

                if (tableName.Contains("roadnet") || tableName.Contains("road"))
                {
                    sqlString = string.Format(
                        "select  distinct name from {0}   where name is not null and name != ''",
                        tableName);
                }
                msg2 = "完成获取所有数据信息";
                if (this.OnProcessNotify != null)
                {
                    this.OnProcessNotify(msg2, 0);
                }
                int count =
                    int.Parse(
                        this.dbcon.ExecuteScalar(string.Format("Select Count(1) From ({0}) as t", sqlString)).ToString());
                var          read = this.dbcon.ExecuteReader(sqlString);
                int          j    = 0;
                PinyinHelper helper;
                while (read.Read())
                {
                    j++;
                    string sql = "";
                    try
                    {
                        if (tableName.Contains("roadnet") || tableName.Contains("road"))
                        {
                            var    name       = read.GetString(0);
                            string hanziValue = name.Trim().Replace('\'', ' ').Replace('(', '(').Replace(')', ')');
                            helper = TextToPinyin.Convert(hanziValue);
                            //sql = "update " + tableName + " set " + quanpin + "='" + helper.Pinyin + "',"
                            //      + shouZim + "='" + helper.Szm + "' where name ='" + read.GetInt32(0) + "'";

                            sql = string.Format(
                                "update {0} set quanpin='{1}',szm='{2}' where name ='{3}'",
                                tableName,
                                helper.Pinyin,
                                helper.Szm, name);

                            this.dbcon.ExecuteNonQuery(sql);
                        }
                        else
                        {
                            string hanziValue = read.GetString(1).Trim().Replace('\'', ' ').Replace('(', '(').Replace(')', ')');
                            helper = TextToPinyin.Convert(hanziValue);
                            sql    = "update " + tableName + " set " + quanpin + "='" + helper.Pinyin + "',"
                                     + shouZim + "='" + helper.Szm + "' where gid=" + read.GetInt32(0);

                            this.dbcon.ExecuteNonQuery(sql);
                        }
                    }
                    catch (Exception e)
                    {
                        log.Error(e);
                    }
                    string msg = "已处理路网数据" + j.ToString() + "条,共" + count.ToString() + "条";
                    if (this.OnProcessNotify != null)
                    {
                        this.OnProcessNotify(msg, (j * 100) / count);
                    }
                }
                read.Close();
                string msg1 = "处理完成";
                if (this.OnProcessNotify != null)
                {
                    this.OnProcessNotify(msg1, 100);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }