public bool SqlUploadeInfo(string[] Column, Info InfoStruct)
        {
            string InsertStr = "insert into VehicleInfo (";
            for (int iLoop = 0; iLoop < Column.Length - 1; ++iLoop)
            {
                InsertStr += Column[iLoop] + ",";
            }
            InsertStr += "信息更新者姓名) values ('";
            InsertStr += InfoStruct.汽车ID + "','";
            InsertStr += InfoStruct.车型 + "','";
            InsertStr += InfoStruct.型号 + "','";
            InsertStr += InfoStruct.品牌 + "',";
            InsertStr += InfoStruct.年款 + ",'";
            InsertStr += InfoStruct.厂商 + "','";
            InsertStr += InfoStruct.级别 + "','";
            InsertStr += InfoStruct.车身结构 + "',";
            InsertStr += InfoStruct.长 + ",";
            InsertStr += InfoStruct.宽 + ",";
            InsertStr += InfoStruct.高 + ",";
            InsertStr += InfoStruct.最高车速 + ",";
            InsertStr += InfoStruct.百公里加速 + ",";
            InsertStr += InfoStruct.综合油耗 + ",";
            InsertStr += InfoStruct.最小离地间隙 + ",";
            InsertStr += InfoStruct.轴距 + ",";
            InsertStr += InfoStruct.前轮距 + ",";
            InsertStr += InfoStruct.后轮距 + ",";
            InsertStr += InfoStruct.整备质量 + ",";
            InsertStr += InfoStruct.车门数 + ",";
            InsertStr += InfoStruct.座位数 + ",";
            InsertStr += InfoStruct.行李厢容积 + ",";
            InsertStr += InfoStruct.排量 + ",";
            InsertStr += InfoStruct.最大马力 + ",";
            InsertStr += InfoStruct.最大功率 + ",'";
            InsertStr += InfoStruct.前轮胎规格 + "','";
            InsertStr += InfoStruct.后轮胎规格 + "','";
            InsertStr += InfoStruct.电动天窗 + "','";
            InsertStr += InfoStruct.全景天窗 + "','";
            InsertStr += InfoStruct.运动外观套件 + "','";
            InsertStr += InfoStruct.铝合金轮圈 + "','";
            InsertStr += InfoStruct.电动吸合门 + "','";
            InsertStr += InfoStruct.侧滑门 + "','";
            InsertStr += InfoStruct.电动后备厢 + "','";
            InsertStr += InfoStruct.感应后备厢 + "','";
            InsertStr += InfoStruct.车顶行李架 + "','";
            InsertStr += InfoStruct.外观颜色 + "','";
            InsertStr += InfoStruct.变速箱 + "','";
            InsertStr += InfoStruct.信息更新时间 + "','";
            InsertStr += InfoStruct.信息更新者工号 + "','";
            InsertStr += InfoStruct.信息更新者姓名 + "')";

            DatabaseCmd databasecmd = new DatabaseCmd();
            if (databasecmd.SqlExecuteNonQuery(InsertStr) == true)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        public bool SqlUploadGeoInfo(string[] Column, GeoInfo GeoInfoStruct, int ReserveNum)
        {
            DatabaseCmd SelectCmd = new DatabaseCmd();
            string sqlstr = "select count(汽车ID) from GeoInfo_" + GeoInfoStruct.Ext +
                " where 汽车ID = '" + GeoInfoStruct.汽车ID + "' and 视图 = '" + GeoInfoStruct.视图 + "'";
            try
            {
                MySqlDataReader myreader;
                SelectCmd.SqlExecuteReader(sqlstr, out myreader);
                if (myreader.Read())
                {
                    if (myreader.GetInt32(0) >= ReserveNum)
                    {
                        string delStr = "delete from GeoInfo_" + GeoInfoStruct.Ext + " where 汽车ID = '" + GeoInfoStruct.汽车ID +
                            "' and 视图 = '" + GeoInfoStruct.视图 + "' and 版本 not in (select top " + (ReserveNum - 1) + " (版本) from [GeoInfo_" +
                            GeoInfoStruct.Ext + "] where 汽车ID = '" + GeoInfoStruct.汽车ID + "' order by 版本 desc) ";
                        DatabaseCmd deleteCmd = new DatabaseCmd();
                        deleteCmd.SqlExecuteNonQuery(delStr);
                    }
                }
            }
            catch (Exception ex){MessageBox.Show(ex.Message);}
            finally{SelectCmd.SqlReaderClose();}

            DatabaseCmd datacmd = new DatabaseCmd();
            datacmd.GetConnection().Open();
            MySqlTransaction myTran = datacmd.GetConnection().BeginTransaction();
            try
            {
                datacmd.GetCommand().Connection = datacmd.GetConnection();
                datacmd.GetCommand().Transaction = myTran;
                datacmd.GetCommand().CommandType = CommandType.Text;
                datacmd.GetCommand().CommandText = "insert into GeoInfo_" + GeoInfoStruct.Ext + " (";
                for (int iLoop = 0; iLoop < Column.Length - 2; ++iLoop)
                {
                    datacmd.GetCommand().CommandText = datacmd.GetCommand().CommandText + Column[iLoop] + ",";
                }
                datacmd.GetCommand().CommandText += "信息更新者姓名) values (@str1, @str2, @str3, @str4,@byte1, @str5, @int1" +
                    ", @bool1, @date1, @str6, @str7)";

                SqlParameter str1 = new SqlParameter("@str1", SqlDbType.NVarChar);
                SqlParameter str2 = new SqlParameter("@str2", SqlDbType.NVarChar);
                SqlParameter str3 = new SqlParameter("@str3", SqlDbType.NVarChar);
                SqlParameter str4 = new SqlParameter("@str4", SqlDbType.NVarChar);
                SqlParameter byte1 = new SqlParameter("@byte1", SqlDbType.Image);
                SqlParameter str5 = new SqlParameter("@str5", SqlDbType.NVarChar);
                SqlParameter int1 = new SqlParameter("@int1", SqlDbType.Int);
                SqlParameter bool1 = new SqlParameter("@bool1", SqlDbType.Bit);
                SqlParameter date1 = new SqlParameter("@date1", SqlDbType.DateTime);
                SqlParameter str6 = new SqlParameter("@str6", SqlDbType.NVarChar);
                SqlParameter str7 = new SqlParameter("@str7", SqlDbType.NVarChar);

                str1.Value = GeoInfoStruct.汽车ID;
                str2.Value = GeoInfoStruct.Car;
                str3.Value = GeoInfoStruct.Factory;
                str4.Value = GeoInfoStruct.Band;

                if (GeoInfoStruct.ByteData != null) { byte1.Value = GeoInfoStruct.ByteData; }
                else { byte1.Value = System.DBNull.Value; }

                str5.Value = GeoInfoStruct.视图;

                int1.Value = GeoInfoStruct.Version;
                bool1.Value = GeoInfoStruct.IsModel;
                date1.Value = GeoInfoStruct.UpdateDate;
                str6.Value = GeoInfoStruct.信息更新者工号;
                str7.Value = GeoInfoStruct.信息更新者姓名;

                datacmd.GetCommand().Parameters.Add(str1);
                datacmd.GetCommand().Parameters.Add(str2);
                datacmd.GetCommand().Parameters.Add(str3);
                datacmd.GetCommand().Parameters.Add(str4);
                datacmd.GetCommand().Parameters.Add(byte1);
                datacmd.GetCommand().Parameters.Add(str5);
                datacmd.GetCommand().Parameters.Add(int1);
                datacmd.GetCommand().Parameters.Add(bool1);
                datacmd.GetCommand().Parameters.Add(date1);
                datacmd.GetCommand().Parameters.Add(str6);
                datacmd.GetCommand().Parameters.Add(str7);

                datacmd.GetCommand().ExecuteNonQuery();
                myTran.Commit();

                if (GeoInfoStruct.IsModel == true)
                {
                    string updatestr = "update GeoInfo_" + GeoInfoStruct.Ext + " set 是否模板 = 'false' where 汽车ID = '" +
                        GeoInfoStruct.汽车ID + "' and 视图 = '" + GeoInfoStruct.视图 + "'  and 版本 <>" + GeoInfoStruct.Version;
                    DatabaseCmd updatedatabase = new DatabaseCmd();
                    updatedatabase.SqlExecuteNonQuery(updatestr);
                }

                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                myTran.Rollback();
                return false;
            }
            finally
            {
                myTran.Dispose();
                datacmd.GetCommand().Transaction = null;
                datacmd.GetConnection().Close();
            }
        }