Example #1
0
        /// <summary>
        /// 将数据导出至Excel文件
        /// </summary>
        /// <param name="Table">DataTable对象</param>
        /// <param name="ExcelFilePath">Excel文件路径</param>
        public static bool OutputToExcel(DataTable Table, string ExcelFilePath)
        {
            if (File.Exists(ExcelFilePath))
            {
                throw new Exception("该文件已经存在!");
            }

            if ((Table.TableName.Trim().Length == 0) || (Table.TableName.ToLower() == "table"))
            {
                Table.TableName = "Sheet1";
            }

            //数据表的列数
            int ColCount = Table.Columns.Count;

            //用于记数,实例化参数时的序号
            int i = 0;

            //创建参数
            OleDbParameter[] para = new OleDbParameter[ColCount];

            //创建表结构的SQL语句
            string TableStructStr = @"Create Table " + Table.TableName + "(";

            //连接字符串
            string          connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFilePath + ";Extended Properties=Excel 8.0;";
            OleDbConnection objConn    = new OleDbConnection(connString);

            //创建表结构
            OleDbCommand objCmd = new OleDbCommand();

            //数据类型集合
            ArrayList DataTypeList = new ArrayList();

            DataTypeList.Add("System.Decimal");
            DataTypeList.Add("System.Double");
            DataTypeList.Add("System.Int16");
            DataTypeList.Add("System.Int32");
            DataTypeList.Add("System.Int64");
            DataTypeList.Add("System.Single");

            //遍历数据表的所有列,用于创建表结构
            foreach (DataColumn col in Table.Columns)
            {
                //如果列属于数字列,则设置该列的数据类型为double
                if (DataTypeList.IndexOf(col.DataType.ToString()) >= 0)
                {
                    para[i] = new OleDbParameter("@" + col.ColumnName, OleDbType.Double);
                    objCmd.Parameters.Add(para[i]);

                    //如果是最后一列
                    if (i + 1 == ColCount)
                    {
                        TableStructStr += col.ColumnName + " double)";
                    }
                    else
                    {
                        TableStructStr += col.ColumnName + " double,";
                    }
                }
                else
                {
                    para[i] = new OleDbParameter("@" + col.ColumnName, OleDbType.VarChar);
                    objCmd.Parameters.Add(para[i]);

                    //如果是最后一列
                    if (i + 1 == ColCount)
                    {
                        TableStructStr += col.ColumnName + " varchar)";
                    }
                    else
                    {
                        TableStructStr += col.ColumnName + " varchar,";
                    }
                }
                i++;
            }

            //创建Excel文件及文件结构
            try
            {
                objCmd.Connection  = objConn;
                objCmd.CommandText = TableStructStr;

                if (objConn.State == ConnectionState.Closed)
                {
                    objConn.Open();
                }
                objCmd.ExecuteNonQuery();
            }
            catch (Exception exp)
            {
                throw exp;
            }

            //插入记录的SQL语句
            string InsertSql_1 = "Insert into " + Table.TableName + " (";
            string InsertSql_2 = " Values (";
            string InsertSql   = "";

            //遍历所有列,用于插入记录,在此创建插入记录的SQL语句
            for (int colID = 0; colID < ColCount; colID++)
            {
                if (colID + 1 == ColCount)  //最后一列
                {
                    InsertSql_1 += Table.Columns[colID].ColumnName + ")";
                    InsertSql_2 += "@" + Table.Columns[colID].ColumnName + ")";
                }
                else
                {
                    InsertSql_1 += Table.Columns[colID].ColumnName + ",";
                    InsertSql_2 += "@" + Table.Columns[colID].ColumnName + ",";
                }
            }

            InsertSql = InsertSql_1 + InsertSql_2;

            //遍历数据表的所有数据行
            for (int rowID = 0; rowID < Table.Rows.Count; rowID++)
            {
                for (int colID = 0; colID < ColCount; colID++)
                {
                    if (para[colID].DbType == DbType.Double && Table.Rows[rowID][colID].ToString().Trim() == "")
                    {
                        para[colID].Value = 0;
                    }
                    else
                    {
                        para[colID].Value = Table.Rows[rowID][colID].ToString().Trim();
                    }
                }
                try
                {
                    objCmd.CommandText = InsertSql;
                    objCmd.ExecuteNonQuery();
                }
                catch (Exception exp)
                {
                    string str = exp.Message;
                }
            }
            try
            {
                if (objConn.State == ConnectionState.Open)
                {
                    objConn.Close();
                }
            }
            catch (Exception exp)
            {
                throw exp;
            }
            return(true);
        }
Example #2
0
        protected string UpdateFuelData(string vin, string status, DataRow drMain, DataTable dtPam, OleDbConnection con)
        {
            string           message = string.Empty;
            OleDbTransaction tra     = null; //创建事务,开始执行事务

            try
            {
                tra = con.BeginTransaction();
                #region 更新基本信息表

                string sqlUpdateBasic = @"UPDATE FC_CLJBXX SET 
                                    USER_ID=@USER_ID,QCSCQY=@QCSCQY,JKQCZJXS=@JKQCZJXS,CLXH=@CLXH,CLZL=@CLZL,
                                    RLLX=@RLLX,ZCZBZL=@ZCZBZL,ZGCS=@ZGCS,LTGG=@LTGG,ZJ=@ZJ,
                                    TYMC=@TYMC,YYC=@YYC,ZWPS=@ZWPS,ZDSJZZL=@ZDSJZZL,EDZK=@EDZK,LJ=@LJ,
                                    QDXS=@QDXS,JYJGMC=@JYJGMC,JYBGBH=@JYBGBH,STATUS=@STATUS,UPDATETIME=@UPDATETIME,
                                    HGSPBM=@HGSPBM,QTXX=@QTXX
                                   WHERE VIN=@VIN";

                OleDbParameter upTime = new OleDbParameter("@UPDATETIME", DateTime.Now);
                upTime.OleDbType = OleDbType.DBDate;

                OleDbParameter[] parameters =
                {
                    new OleDbParameter("@USER_ID",  drMain["UPDATE_BY"].ToString()),
                    new OleDbParameter("@QCSCQY",   drMain["QCSCQY"].ToString()),
                    new OleDbParameter("@JKQCZJXS", drMain["JKQCZJXS"].ToString()),
                    new OleDbParameter("@CLXH",     drMain["CLXH"].ToString()),
                    new OleDbParameter("@CLZL",     drMain["CLZL"].ToString()),

                    new OleDbParameter("@RLLX",     drMain["RLLX"].ToString()),
                    new OleDbParameter("@ZCZBZL",   drMain["ZCZBZL"].ToString()),
                    new OleDbParameter("@ZGCS",     drMain["ZGCS"].ToString()),
                    new OleDbParameter("@LTGG",     drMain["LTGG"].ToString()),
                    new OleDbParameter("@ZJ",       drMain["ZJ"].ToString()),

                    new OleDbParameter("@TYMC",     drMain["TYMC"].ToString()),
                    new OleDbParameter("@YYC",      drMain["YYC"].ToString()),
                    new OleDbParameter("@ZWPS",     drMain["ZWPS"].ToString()),
                    new OleDbParameter("@ZDSJZZL",  drMain["ZDSJZZL"].ToString()),
                    new OleDbParameter("@EDZK",     drMain["EDZK"].ToString()),
                    new OleDbParameter("@LJ",       drMain["LJ"].ToString()),

                    new OleDbParameter("@QDXS",     drMain["QDXS"].ToString()),
                    new OleDbParameter("@JYJGMC",   drMain["JYJGMC"].ToString()),
                    new OleDbParameter("@JYBGBH",   drMain["JYBGBH"].ToString()),
                    new OleDbParameter("@STATUS",   status),
                    upTime,
                    new OleDbParameter("@HGSPBM",   drMain["HGSPBM"].ToString()),
                    new OleDbParameter("@QTXX",     drMain["CT_QTXX"].ToString()),
                    new OleDbParameter("@VIN",      vin)
                };
                AccessHelper.ExecuteNonQuery(tra, sqlUpdateBasic, parameters);

                #endregion

                #region 插入参数信息

                // 更新燃料参数表
                foreach (DataRow drParam in dtPam.Rows)
                {
                    string           paramCode      = drParam["PARAM_CODE"].ToString().Trim();
                    string           sqlUpdateParam = @"UPDATE RLLX_PARAM_ENTITY 
                                            SET PARAM_VALUE=@PARAM_VALUE
                                            WHERE VIN=@VIN AND PARAM_CODE=@PARAM_CODE";
                    OleDbParameter[] paramList      =
                    {
                        new OleDbParameter("@PARAM_VALUE", drMain[paramCode]),
                        new OleDbParameter("@VIN",         vin),
                        new OleDbParameter("@PARAM_CODE",  paramCode)
                    };
                    AccessHelper.ExecuteNonQuery(tra, sqlUpdateParam, paramList);
                }
                tra.Commit();
                #endregion
            }
            catch (Exception ex)
            {
                tra.Rollback();
                message = ex.Message + "\r\n";
            }

            return(message);
        }
Example #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            try{
                String NombreCadena, NombreSucursal;
                //1- Hcer la conexión a la BD de Oracle
                cnOracle = new OleDbConnection("Provider=MSDAORA; Data Source=xe;" +
                                               "User ID=System;Password=gonbar");

                /*
                 * cnOracle = new OleDbConnection("Provider=MSDAORA; Data Source=oracle;" +
                 * "User ID=BD03;Password=gonbar");
                 */
                cnOracle.Open();

                OleDbCommand   funcionAlmacenado;
                OleDbParameter salida, parametro1, parametro2;
                int            cant;

                //1- Abrir la conexión a la BD.
                cnOracle = new OleDbConnection("Provider=MSDAORA; Data Source=xe;" +
                                               "User ID=System;Password=gonbar");

                /*
                 * cnOracle = new OleDbConnection("Provider=MSDAORA; Data Source=oracle;" +
                 * "User ID=BD03;Password=gonbar");
                 */
                cnOracle.Open();
                funcionAlmacenado            = new OleDbCommand();
                funcionAlmacenado.Connection = cnOracle;

                //2- Especificar el llamado a la función  (en general: al subprograma).
                funcionAlmacenado.CommandText = "CantidadProductos";
                funcionAlmacenado.CommandType = CommandType.StoredProcedure;


                //3- Especificar los parámetros:
                //a) primero todos los de salida (uno en este caso):
                salida = new OleDbParameter("RETURN_VALUE", OleDbType.Integer,
                                            4, ParameterDirection.ReturnValue, false, 4, 0, "NombreCadena" + "NombreSucursal", DataRowVersion.Current, 0);
                funcionAlmacenado.Parameters.Add(salida);


                //b) Luego todos los de entrada:
                NombreCadena   = comboBox1.SelectedItem.ToString();
                parametro1     = new OleDbParameter("NombreCad", NombreCadena);
                NombreSucursal = comboBox2.SelectedItem.ToString();
                parametro2     = new OleDbParameter("NombreSuc", NombreSucursal);
                funcionAlmacenado.Parameters.Add(parametro1);
                funcionAlmacenado.Parameters.Add(parametro2);

                //4- Ejecutar la función (en general: el subprograma).

                funcionAlmacenado.ExecuteNonQuery();

                //5- Recuperar el (los) valor(es) regresado(s) por medio del (de los)
                //   parámetro(s) de salida.
                cant = Convert.ToInt16(funcionAlmacenado.Parameters["RETURN_VALUE"].Value);
                MessageBox.Show("Cadena: " + NombreCadena + ", Sucursal: " + NombreSucursal +
                                ", Cantidad de Articulos: " + cant);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
            comboBox1.SelectedIndex = -1;
            comboBox2.SelectedIndex = -1;
            //6- Cerrar la conexión a la BD.
            cnOracle.Close();
        }
Example #4
0
        internal void povecaj(string slovo, string stupac)
        {
            try
            {
                connection.Open();
                OleDbCommand   command   = new OleDbCommand("select * from Slova where Slovo = @slovo", connection);
                OleDbParameter parameter = new OleDbParameter();
                parameter.ParameterName = "@slovo";
                if (slovo == " ")
                {
                    parameter.Value = "space";
                }
                else
                {
                    parameter.Value = slovo;
                }

                command.Parameters.Add(parameter);
                reader = command.ExecuteReader();
                while (reader.Read())
                {
                    procitano = (int)reader[stupac];
                }

                procitano++;

                OleDbCommand command1 = new OleDbCommand("update Slova set " + stupac + " = @broj where Slovo = @slovo", connection);

                OleDbParameter parameter2 = new OleDbParameter();
                parameter2.ParameterName = "@broj";
                parameter2.Value         = procitano;
                command1.Parameters.Add(parameter2);

                OleDbParameter parameter1 = new OleDbParameter();
                parameter1.ParameterName = "@slovo";
                if (slovo == " ")
                {
                    parameter1.Value = "space";
                }
                else
                {
                    parameter1.Value = slovo;
                }
                command1.Parameters.Add(parameter1);

                command1.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }

                if (connection != null)
                {
                    connection.Close();
                }
            }

            //trebam srediti i omjer sada
            try
            {
                int    tocno = 0, netocno = 0;
                double omjer;
                connection.Open();
                OleDbCommand   command   = new OleDbCommand("select * from Slova where Slovo = @slovo", connection);
                OleDbParameter parameter = new OleDbParameter();
                parameter.ParameterName = "@slovo";
                if (slovo == " ")
                {
                    parameter.Value = "space";
                }
                else
                {
                    parameter.Value = slovo;
                }

                command.Parameters.Add(parameter);
                reader = command.ExecuteReader();
                while (reader.Read())
                {
                    tocno   = (int)reader["Tocno"];
                    netocno = (int)reader["Netocno"];
                }

                if (tocno + netocno != 0)
                {
                    omjer = Math.Round((double)(tocno * 100) / (tocno + netocno), 2);
                }
                else
                {
                    omjer = -1;
                }

                OleDbCommand command2 = new OleDbCommand("update Slova set omjer = @omjer where Slovo = @slovo", connection);

                OleDbParameter parameter3 = new OleDbParameter();
                parameter3.ParameterName = "@omjer";
                parameter3.Value         = omjer;
                command2.Parameters.Add(parameter3);

                OleDbParameter parameter4 = new OleDbParameter();
                parameter4.ParameterName = "@slovo";
                if (slovo == " ")
                {
                    parameter4.Value = "space";
                }
                else
                {
                    parameter4.Value = slovo;
                }
                command2.Parameters.Add(parameter4);

                command2.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }

                if (connection != null)
                {
                    connection.Close();
                }
            }
        }
Example #5
0
        ///<summary>
        /// Execute a stocked procedure.
        /// <param name="schema">
        /// <see cref="SharpQuery.SchemaClass">SchemaClass</see> object.
        /// </param>
        /// <param name="rows">
        /// Maximum number of row to extract. If is "0" then all rows are extracted.
        /// </param>
        /// <returns> return a <see cref="System.Data.DataTable">DataTable</see>
        ///or a <see cref="System.Data.DataSet">DataSet</see> object.
        /// </returns>		/// </summary>
        public override object ExecuteProcedure(ISchemaClass schema, int rows, SharpQuerySchemaClassCollection parameters)
        {
            DataSet returnValues = null;

            if (schema == null)
            {
                throw new System.ArgumentNullException("schema");
            }

            OleDbCommand   command = new OleDbCommand();
            OleDbParameter para    = null;

            returnValues = new DataSet();

            command.Connection  = this.pOLEConnection;
            command.CommandText = schema.Name;
            command.CommandType = System.Data.CommandType.StoredProcedure;

            if (parameters != null)
            {
                foreach (SharpQueryParameter classParam in parameters)
                {
                    para               = new OleDbParameter();
                    para.DbType        = classParam.DataType;
                    para.Direction     = (ParameterDirection)classParam.Type;
                    para.ParameterName = classParam.Name;
                    if (para.ParameterName.StartsWith("["))
                    {
                        para.ParameterName = para.ParameterName.Remove(0, 1);
                    }
                    if (para.ParameterName.EndsWith("]"))
                    {
                        para.ParameterName = para.ParameterName.Remove(para.ParameterName.Length - 1, 1);
                    }
                    para.Value = classParam.Value;
                    command.Parameters.Add(para);
                }
            }

            //				command.Prepare();
            command.Transaction = this.pOLEConnection.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);

            try
            {
                this.pOLEAdapter.SelectCommand = command;
                this.pOLEAdapter.Fill(returnValues);
            }
            catch (OleDbException e)
            {
                command.Transaction.Rollback();

                string mes = schema.Name + "\n\r";

                foreach (OleDbError err in e.Errors)
                {
                    mes += "-----------------\n\r";
                    mes += err.Message + "\n\r";
                    mes += err.NativeError + "\n\r";
                }
                throw new ExecuteProcedureException(mes);
            }
            catch (System.Exception e)
            {
                command.Transaction.Rollback();
                throw new ExecuteProcedureException(e.Message);
            }

            command.Transaction.Commit();

            foreach (DataTable table in returnValues.Tables)
            {
                //readonly
                table.DefaultView.AllowDelete = false;
                table.DefaultView.AllowEdit   = false;
                table.DefaultView.AllowNew    = false;
            }

            return(returnValues);
        }
Example #6
0
        /// <summary>
        /// 将列表数据导入到Excel中
        /// </summary>
        /// <param name="templateExcelFileName"></param>
        /// <param name="sheetName"></param>
        /// <param name="fieldNames"></param>
        /// <param name="datas"></param>
        /// <param name="destExcelFileName"></param>
        public static void Export2Excel(string templateExcelFileName, string sheetName, string[] fieldNames, IList <string[]> datas, string destExcelFileName)
        {
            if (null == fieldNames ||
                fieldNames.Length == 0 ||
                null == datas ||
                datas.Count == 0)
            {
                return;
            }

            if (fieldNames.Length > datas[0].Length)
            {
                throw new ArgumentOutOfRangeException("fieldNames", "数据的字段数不能小于模板的字段数");
            }

            System.IO.File.Copy(templateExcelFileName, destExcelFileName, true);

            string          strConn = String.Format(EXCEL_WRITE_CONN_STR, destExcelFileName);
            OleDbConnection conn    = new OleDbConnection(strConn);
            OleDbCommand    cmd     = new OleDbCommand();

            cmd.Connection = conn;

            int fieldLength = fieldNames.Length;

            string[] arrParms = new string[fieldLength];
            for (int i = 0; i < fieldLength; i++)
            {
                arrParms[i] = "@" + i.ToString();

                OleDbParameter pa = new OleDbParameter();
                pa.ParameterName = arrParms[i];
                cmd.Parameters.Add(pa);
            }
            string fields = StringUtils.Join(fieldNames, "[", "]", ",");
            string parms  = StringUtils.Join(arrParms, ",");

            cmd.CommandText = String.Format("insert into [{0}$] ({1}) values ({2})", sheetName, fields, parms);

            using (conn)
            {
                conn.Open();
                using (OleDbTransaction trans = conn.BeginTransaction())
                {
                    cmd.Transaction = trans;
                    try
                    {
                        for (int i = 0, icount = datas.Count; i < icount; i++)
                        {
                            string[] arr = datas[i];
                            for (int j = 0; j < fieldLength; j++)
                            {
                                cmd.Parameters[arrParms[j]].Value = arr[j];
                            }
                            cmd.ExecuteNonQuery();
                        }
                        trans.Commit();
                    }
                    catch (SqlException ex)
                    {
                        if (null != trans)
                        {
                            trans.Rollback();
                        }
                        throw ex;
                    }
                }
            }
        }
Example #7
0
        public override void PrepareCommand(DbCommand cmd)
        {
            base.PrepareCommand(cmd);

            foreach (DbParameter p in cmd.Parameters)
            {
                if (p.Direction == ParameterDirection.Output || p.Direction == ParameterDirection.ReturnValue)
                {
                    continue;
                }

                object value = p.Value;
                if (value == DBNull.Value)
                {
                    continue;
                }
                Type           type       = value.GetType();
                OleDbParameter oleDbParam = (OleDbParameter)p;

                if (oleDbParam.DbType != DbType.Guid && type == typeof(Guid))
                {
                    oleDbParam.OleDbType = OleDbType.Char;
                    oleDbParam.Size      = 36;
                    continue;
                }

                if ((p.DbType == DbType.Time || p.DbType == DbType.DateTime) && type == typeof(TimeSpan))
                {
                    oleDbParam.OleDbType = OleDbType.Double;
                    oleDbParam.Value     = ((TimeSpan)value).TotalDays;
                    continue;
                }

                if (type == typeof(Boolean))
                {
                    p.Value = ((bool)value).ToString();
                    continue;
                }

                switch (p.DbType)
                {
                case DbType.Binary:
                    if (((byte[])value).Length > 2000)
                    {
                        oleDbParam.OleDbType = OleDbType.LongVarBinary;
                    }
                    break;

                case DbType.Time:
                    oleDbParam.OleDbType = OleDbType.LongVarWChar;
                    p.Value = value.ToString();
                    break;

                case DbType.DateTime:
                    oleDbParam.OleDbType = OleDbType.LongVarWChar;
                    p.Value = value.ToString();
                    break;

                case DbType.AnsiString:
                    if (value.ToString().Length > 4000)
                    {
                        oleDbParam.OleDbType = OleDbType.LongVarChar;
                    }
                    break;

                case DbType.String:
                    if (value.ToString().Length > 2000)
                    {
                        oleDbParam.OleDbType = OleDbType.LongVarWChar;
                    }
                    break;

                case DbType.Object:
                    oleDbParam.OleDbType = OleDbType.LongVarWChar;
                    p.Value = SerializationManager.Serialize(value);
                    break;
                }
            }

            //replace "N'" to "'"
            cmd.CommandText = cmd.CommandText.Replace("N'", "'");

            //replace msaccess specific function names in cmdText
            cmd.CommandText = cmd.CommandText.Replace("upper(", "ucase(")
                              .Replace("lower(", "lcase(")
                              .Replace("substring(", "mid(")
                              .Replace("getdate()", "date() + time()")
                              .Replace("datepart(year", "datepart('yyyy'")
                              .Replace("datepart(month", "datepart('m'")
                              .Replace("datepart(day", "datepart('d'");

            //replace CHARINDEX with INSTR and reverse seqeunce of param items in CHARINDEX()
            int startIndexOfCharIndex = cmd.CommandText.IndexOf("charindex(");

            while (startIndexOfCharIndex > 0)
            {
                int      endIndexOfCharIndex = DataUtils.GetEndIndexOfMethod(cmd.CommandText, startIndexOfCharIndex + "charindex(".Length);
                string[] itemsInCharIndex    = DataUtils.SplitTwoParamsOfMethodBody(
                    cmd.CommandText.Substring(startIndexOfCharIndex + "charindex(".Length,
                                              endIndexOfCharIndex - startIndexOfCharIndex - "charindex(".Length));
                cmd.CommandText = cmd.CommandText.Substring(0, startIndexOfCharIndex)
                                  + "instr(" + itemsInCharIndex[1] + "," + itemsInCharIndex[0] + ")"
                                  + (cmd.CommandText.Length - 1 > endIndexOfCharIndex ?
                                     cmd.CommandText.Substring(endIndexOfCharIndex + 1) : "");

                startIndexOfCharIndex = cmd.CommandText.IndexOf("charindex(");
            }
        }
Example #8
0
        /// <summary>
        /// 返回人员统计列表
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public List <PersonPlanStatisticData> GetPersonRPStatByDate(string fromDate, string toDate)
        {
            //            SELECT nameid, name, INCIDENT as type, sum(FRACTION) as statisticcount FROM PersonRewardPunishInfo

            //where Format(RPTIME,"yyyy-mm-dd")  <= "2012/10/12"


            //group by NAMEID, NAME, INCIDENT order by NAME, INCIDENT

            if (string.IsNullOrEmpty(fromDate) == false)
            {
                GetPersonRPStatByDateSql += " and  Format(RPTIME,\"yyyy-mm-dd\")  >= \'" + fromDate + "'";
            }

            if (string.IsNullOrEmpty(toDate) == false)
            {
                GetPersonRPStatByDateSql += " and  Format(RPTIME,\"yyyy-mm-dd\")  <= \'" + toDate + "'";
            }

            GetPersonRPStatByDateSql += " group by NAMEID, NAME, INCIDENT order by NAME, INCIDENT ";


            DataSet ds = DbHelperACE.Query(GetPersonRPStatByDateSql);

            List <PersonPlanStatisticData> PersonPlanList = new List <PersonPlanStatisticData>();
            DataRowCollection drs = ds.Tables[0].Rows;

            for (int i = 0; i < drs.Count; i++)
            {
                PersonPlanStatisticData item = new PersonPlanStatisticData();
                item.AddressGuid = drs[i]["nameid"].ToString().Trim();
                item.Address     = drs[i]["name"].ToString().Trim();
                item.Type        = drs[i]["type"].ToString().Trim();
                if (drs[i]["statisticcount"] != DBNull.Value)
                {
                    item.Count = Double.Parse(drs[i]["statisticcount"].ToString().Trim());
                }
                PersonPlanList.Add(item);
            }



//            and Format(RPTIME,'yyyy - mm - dd')  >= @fromDate
//and Format(RPTIME,'yyyy - mm - dd')  <= @toDate
            List <OleDbParameter> paramList = new List <OleDbParameter>();
            OleDbParameter        param     = new OleDbParameter("@fromDate", OleDbType.LongVarWChar);

            param.Value = fromDate;

            paramList.Add(param);


            OleDbParameter toDateparam = new OleDbParameter("@toDate", OleDbType.LongVarWChar);

            toDateparam.Value = toDate;

            paramList.Add(toDateparam);

            DataSet           dshj  = DbHelperACE.Query(GetPersonRPStatByDateHJSql, paramList.ToArray());
            DataRowCollection drshj = dshj.Tables[0].Rows;

            for (int i = 0; i < drshj.Count; i++)
            {
                PersonPlanStatisticData item = new PersonPlanStatisticData();
                item.AddressGuid = drshj[i]["name"].ToString().Trim();
                item.Address     = drshj[i]["name"].ToString().Trim();
                item.Type        = drshj[i]["type"].ToString().Trim();
                if (drshj[i]["statisticcount"] != DBNull.Value)
                {
                    item.Count = Double.Parse(drshj[i]["statisticcount"].ToString().Trim());
                }
                PersonPlanList.Add(item);
            }

            return(PersonPlanList);
        }
Example #9
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (txtUserName.Text == "")
            {
                MessageBox.Show("Please enter user name", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtUserName.Focus();
                return;
            }
            if (txtPassword.Text == "")
            {
                MessageBox.Show("Please enter password", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtPassword.Focus();
                return;
            }
            try
            {
                OleDbConnection myConnection = default(OleDbConnection);
                myConnection = new OleDbConnection(cs);

                OleDbCommand myCommand = default(OleDbCommand);

                myCommand = new OleDbCommand("SELECT Username,User_password FROM Users WHERE Username = @username AND User_password = @UserPassword", myConnection);
                OleDbParameter uName     = new OleDbParameter("@username", OleDbType.VarChar);
                OleDbParameter uPassword = new OleDbParameter("@UserPassword", OleDbType.VarChar);
                uName.Value     = txtUserName.Text;
                uPassword.Value = txtPassword.Text;
                myCommand.Parameters.Add(uName);
                myCommand.Parameters.Add(uPassword);

                myCommand.Connection.Open();

                OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

                if (myReader.Read() == true)
                {
                    int i;
                    ProgressBar1.Visible = true;
                    ProgressBar1.Maximum = 5000;
                    ProgressBar1.Minimum = 0;
                    ProgressBar1.Value   = 4;
                    ProgressBar1.Step    = 1;

                    for (i = 0; i <= 5000; i++)
                    {
                        ProgressBar1.PerformStep();
                    }
                    this.Hide();
                    frmMainMenu frm = new frmMainMenu();
                    frm.Show();
                    frm.lblUser.Text = txtUserName.Text;
                }


                else
                {
                    MessageBox.Show("Login is Failed...Try again !", "Login Denied", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    txtUserName.Clear();
                    txtPassword.Clear();
                    txtUserName.Focus();
                }
                if (myConnection.State == ConnectionState.Open)
                {
                    myConnection.Dispose();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void sendUpdateBtn_Click(object sender, EventArgs e)
        {
            List <Student.Mark> marks = new List <Student.Mark>();
            List <Student.Miss> misses = new List <Student.Miss>();
            int resUpdMark, resAddMark, resDelMark, resAddSkip, resDelSkip;

            resUpdMark = resAddMark = resDelMark = resAddSkip = resDelSkip = 0;
            for (int i = 0; i < journalGrid.RowCount; i++)
            {
                for (int j = 2; j < journalGrid.ColumnCount; j++)
                {
                    if (journalGrid[j, i].Value != null)
                    {
                        int    idStudent = (int)journalGrid.Rows[i].Cells[0].Value;
                        string date      = journalGrid.Columns[j].HeaderText;
                        string queryMark = "Select * " +
                                           "From Marks " +
                                           $"Where idStudent = {idStudent} And Marks.dateMark = @date And idSub = {subjectBox.SelectedValue}";
                        OleDbCommand commandMark = new OleDbCommand(queryMark, _connection);
                        commandMark.Parameters.Add(new OleDbParameter("@data", date));
                        var    readerMark = commandMark.ExecuteReader();
                        string querySkip  = "Select * " +
                                            "From SkipLesson " +
                                            $"Where idStudent = {idStudent} And dateSkip = @date And idSub = {subjectBox.SelectedValue}";
                        OleDbCommand commandSkip   = new OleDbCommand(querySkip, _connection);
                        var          paramDateSkip = new OleDbParameter("@date", date);
                        commandSkip.Parameters.Add(paramDateSkip);
                        var readerSkip = commandSkip.ExecuteReader();
                        if (Char.IsDigit(journalGrid[j, i].Value.ToString()[0]))
                        {
                            string queryCheckMark = "Select * " +
                                                    "From Marks " +
                                                    $"Where idStudent = {idStudent} And Marks.dateMark = @date And Marks.valueMark = {journalGrid[j, i].Value} And idSub = {subjectBox.SelectedValue}";
                            OleDbCommand   cmdCheckMark = new OleDbCommand(queryCheckMark, _connection);
                            OleDbParameter param        = new OleDbParameter("@date", date);
                            cmdCheckMark.Parameters.Add(param);
                            var checker = cmdCheckMark.ExecuteReader();
                            cmdCheckMark.Parameters.Clear();
                            if (checker.HasRows)
                            {
                                continue;
                            }
                            if (readerMark.HasRows)
                            {
                                string query = $"Update Marks " +
                                               $"Set Marks.valueMark = {journalGrid[j, i].Value} " +
                                               $"Where idStudent = { journalGrid.Rows[i].Cells[0].Value } And Marks.dateMark = @date And idSub = { subjectBox.SelectedValue }";
                                OleDbCommand   updateCmd       = new OleDbCommand(query, _connection);
                                OleDbParameter paramUpdateMark =
                                    updateCmd.Parameters.Add(new OleDbParameter("@date", date));
                                resUpdMark += updateCmd.ExecuteNonQuery();
                            }
                            else if (readerSkip.HasRows)
                            {
                                readerSkip.Read();
                                string       query      = $"Delete From SkipLesson Where SkipLesson.id = {readerSkip["id"]}";
                                OleDbCommand deleteSkip = new OleDbCommand(query, _connection);
                                resDelSkip += deleteSkip.ExecuteNonQuery();
                            }
                            else
                            {
                                string query = $"Insert Into Marks(idStudent, idSub, dateMark, valueMark) " +
                                               $"Values({idStudent}, {subjectBox.SelectedValue}, '{journalGrid.Columns[j].HeaderText}', {journalGrid[j, i].Value})";
                                OleDbCommand addCommand = new OleDbCommand(query, _connection);
                                resAddMark += addCommand.ExecuteNonQuery();
                            }
                        }
                        else if (journalGrid[j, i].Value.ToString() == "Н")
                        {
                            if (readerMark.HasRows)
                            {
                                string query = $"Delete From Marks " +
                                               $"Where idStudent = {idStudent} And Marks.dateMark = @date And idSub = { subjectBox.SelectedValue }";
                                OleDbCommand deleteMarkCmd = new OleDbCommand(query, _connection);
                                deleteMarkCmd.Parameters.Add(new OleDbParameter("@date", date));
                                resDelMark += deleteMarkCmd.ExecuteNonQuery();
                                string addSkipQuery = "Insert Into SkipLesson(idSub, idStudent, dateSkip) " +
                                                      $"Values( {subjectBox.SelectedValue}, {idStudent}, '{date}')";
                                OleDbCommand addSkipCmd = new OleDbCommand(addSkipQuery, _connection);
                                resAddSkip += addSkipCmd.ExecuteNonQuery();
                            }
                            else if (readerSkip.HasRows)
                            {
                                continue;
                            }
                            else
                            {
                                string query = $"Insert Into SkipLesson(idStudent, idSub, dateSkip) " +
                                               $"Values({idStudent}, {subjectBox.SelectedValue}, '{date}')";
                                OleDbCommand addCommand = new OleDbCommand(query, _connection);
                                resAddSkip += addCommand.ExecuteNonQuery();
                            }
                        }
                        else if (journalGrid[j, i].Value.ToString() == "none")
                        {
                            if (readerMark.HasRows)
                            {
                                readerMark.Read();
                                string       query         = $"Delete From Marks Where id = {readerMark["id"]}";
                                OleDbCommand deleteMarkCmd = new OleDbCommand(query, _connection);
                                resDelMark = deleteMarkCmd.ExecuteNonQuery();
                            }
                            if (readerSkip.HasRows)
                            {
                                readerSkip.Read();
                                string       query         = $"Delete From SkipLesson Where id = {readerSkip["id"]}";
                                OleDbCommand deleteSkipCmd = new OleDbCommand(query, _connection);
                                resDelSkip = deleteSkipCmd.ExecuteNonQuery();
                            }
                        }
                    }
                }
            }
            MessageBox.Show($@"
Обновлено отметок:      {resUpdMark}
Добавлено отметок:      {resAddMark}
Удалено отметок  :      {resDelMark}
Добавлено пропусков:    {resAddSkip}
Удалено пропусков:      {resDelSkip}
", "Статистика");
        }
Example #11
0
        private OleDbDataAdapter SetSheetQueryAdapter(DataTable dt)
        {
            // Deleting in Excel workbook is not possible
            //So this command is not defined
            try
            {
                if (_oleConn == null)
                {
                    throw new Exception("Connection is unassigned or closed.");
                }


                if (_strSheetName.Length == 0)
                {
                    throw new Exception("Sheetname was not assigned.");
                }

                if (PKCols == null)
                {
                    throw new Exception("Cannot update excel sheet with no primarykey set.");
                }
                if (PKCols.Length < 1)
                {
                    throw new Exception("Cannot update excel sheet with no primarykey set.");
                }

                OleDbDataAdapter oleda        = new OleDbDataAdapter(_oleCmdSelect);
                string           strUpdate    = "";
                string           strInsertPar = "";
                string           strInsert    = "";
                string           strWhere     = "";


                for (int iPK = 0; iPK < PKCols.Length; iPK++)
                {
                    strWhere = AddWithAnd(strWhere, dt.Columns[iPK].ColumnName + "=?");
                }
                strWhere = " Where " + strWhere;

                for (int iCol = 0; iCol < dt.Columns.Count; iCol++)
                {
                    strInsert    = AddWithComma(strInsert, dt.Columns[iCol].ColumnName);
                    strInsertPar = AddWithComma(strInsertPar, "?");
                    strUpdate    = AddWithComma(strUpdate, dt.Columns[iCol].ColumnName) + "=?";
                }

                string strTable = "[" + this.SheetName + "$" + this.SheetRange + "]";
                strInsert = "INSERT INTO " + strTable + "(" + strInsert + ") Values (" + strInsertPar + ")";
                strUpdate = "Update " + strTable + " Set " + strUpdate + strWhere;


                oleda.InsertCommand = new OleDbCommand(strInsert, _oleConn);
                oleda.UpdateCommand = new OleDbCommand(strUpdate, _oleConn);
                OleDbParameter oleParIns = null;
                OleDbParameter oleParUpd = null;
                for (int iCol = 0; iCol < dt.Columns.Count; iCol++)
                {
                    oleParIns = new OleDbParameter("?", dt.Columns[iCol].DataType.ToString());
                    oleParUpd = new OleDbParameter("?", dt.Columns[iCol].DataType.ToString());
                    oleParIns.SourceColumn = dt.Columns[iCol].ColumnName;
                    oleParUpd.SourceColumn = dt.Columns[iCol].ColumnName;
                    oleda.InsertCommand.Parameters.Add(oleParIns);
                    oleda.UpdateCommand.Parameters.Add(oleParUpd);
                    oleParIns = null;
                    oleParUpd = null;
                }

                for (int iPK = 0; iPK < PKCols.Length; iPK++)
                {
                    oleParUpd = new OleDbParameter("?", dt.Columns[iPK].DataType.ToString());
                    oleParUpd.SourceColumn  = dt.Columns[iPK].ColumnName;
                    oleParUpd.SourceVersion = DataRowVersion.Original;
                    oleda.UpdateCommand.Parameters.Add(oleParUpd);
                }
                return(oleda);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #12
0
        /// <summary>
        /// 函数:			execWithOutPuts(string sSql,string[] arrParameter,int[] arrReturnParaIndex,out string[] arrOutputs)
        /// Description:	执行带output参数的sSql,并返回output参数数组
        /// Coder:			kyq
        /// </summary>
        /// <param name="sSql">sql语句</param>
        /// <param name="arrParameter">一维数组表示的参数列表</param>
        /// <param name="arrReturnParaIndex">需要返回的参数索引,从零开始计数</param>
        /// <param name="arrOutputs">输出的一维数组</param>
        public void execWithOutPuts(string sSql, string[] arrParameter, int[] arrReturnParaIndex, out string[] arrOutputs)
        {
            checkConn();
            OleDbCommand _cmd = new OleDbCommand();

            _cmd.CommandTimeout = 0;
            _cmd.Connection     = _conn;
            _cmd.CommandText    = SqlCompat(sSql);
            _cmd.Prepare();

            int iCountReturnPara = 0;

            string[] arrTemp = null;
            if (arrReturnParaIndex != null)
            {
                iCountReturnPara = arrReturnParaIndex.GetLength(0);
                arrTemp          = new string[iCountReturnPara];
            }

            try
            {
                if (arrParameter != null)
                {
                    for (int i = 0; i < arrParameter.Length; i++)
                    {
                        for (int m = 0; m < iCountReturnPara; m++)
                        {
                            OleDbParameter myParameter = new OleDbParameter();
                            myParameter.ParameterName = "?P" + (i + 1);
                            if (i == arrReturnParaIndex[m])
                            {
                                myParameter.Value     = arrParameter.GetValue(i);
                                myParameter.Direction = ParameterDirection.Output;
                                myParameter.Size      = 100;
                            }
                            else
                            {
                                myParameter.Direction = ParameterDirection.Input;
                                myParameter.Value     = arrParameter.GetValue(i);
                            }
                            _cmd.Parameters.Add(myParameter);
                        }
                    }
                }

                _cmd.ExecuteNonQuery();

                //返回数据库输出数据数组,前提是_cmd已经执行
                if (arrReturnParaIndex != null)
                {
                    for (int i = 0; i < arrParameter.Length; i++)
                    {
                        for (int m = 0; m < iCountReturnPara; m++)
                        {
                            if (i == arrReturnParaIndex[m])
                            {
                                arrTemp[m] = _cmd.Parameters[i].Value.ToString();
                            }
                        }
                    }
                }
                arrOutputs = arrTemp;
            }
            catch (Exception e)
            {
                arrOutputs = null;
                this.ErrHandle("execWithOutPuts方法出错:" + e.Message + "\r\n" + e.StackTrace);
            }

            _cmd.Parameters.Clear();
        }
Example #13
0
        /// <summary>
        /// 新增或修改数据表数据
        /// </summary>
        /// <typeparam name="T">对应要修改或新增的实体类型</typeparam>
        /// <param name="_myclass">对应要修改或新增的实体</param>
        /// <returns></returns>
        public static bool InsertOrUpdateData <T>(T _myclass)
        {
            string sqlstr = "";
            object objDataFieldAttribute = null;
            Type   _type = typeof(T);

            object objtable  = _type.GetCustomAttributes(typeof(DataFieldAttribute), false);
            string tablename = "";

            if (objtable != null)
            {
                DataFieldAttribute[] tableattrib = (DataFieldAttribute[])objtable;
                if (tableattrib.Length > 0)
                {
                    tablename = tableattrib[0].FieldName;
                }
                else
                {
                    tablename = _type.Name;
                }
            }
            else
            {
                tablename = _type.Name;
            }

            PropertyInfo[] _infolist = _type.GetProperties();

            ArrayList ORMap    = new ArrayList();
            bool      isinsert = true;
            string    strpk    = "";
            object    _obj     = null;

            //获得实体和数据库对应关系
            foreach (PropertyInfo _info in _infolist)
            {
                _obj = _type.GetProperty(_info.Name).GetValue(_myclass, null);
                if (_obj != null && _obj.ToString() != "")
                {
                    objDataFieldAttribute = _info.GetCustomAttributes(typeof(DataFieldAttribute), false);
                    if (objDataFieldAttribute != null)
                    {
                        DataFieldAttribute[] colattrib = (DataFieldAttribute[])objDataFieldAttribute;
                        if (colattrib.Length > 0)
                        {
                            DataFieldAttribute _df = colattrib[0];
                            ORMap.Add(new string[] { _df.FieldName, _info.Name });
                            if (_df.PK == "pk")
                            {
                                strpk = _df.FieldName;
                                if (((int)_type.GetProperty(_info.Name).GetValue(_myclass, null)) > 0)
                                {
                                    isinsert = false;
                                }
                            }
                        }
                        else
                        {
                            ORMap.Add(new string[] { _info.Name, _info.Name });
                        }
                    }
                    else
                    {
                        ORMap.Add(new string[] { _info.Name, _info.Name });
                    }
                }
            }


            //整理入参
            OleDbParameter[] pams = new OleDbParameter[ORMap.Count];
            string           insertsql1 = "", insertsql2 = "", updatesql = "";
            int i = 0;

            foreach (string[] mapstr in ORMap)
            {
                pams[i] = new OleDbParameter("@" + mapstr[0], (_type.GetProperty(mapstr[1]).GetValue(_myclass, null)).ToString());
                if (strpk != mapstr[0])
                {
                    if (isinsert)
                    {
                        if (insertsql1 != "")
                        {
                            insertsql1 += ",";
                            insertsql2 += ",";
                        }
                        insertsql1 += mapstr[0];
                        insertsql2 += "@" + mapstr[0];
                    }
                    else
                    {
                        if (updatesql != "")
                        {
                            updatesql += ",";
                        }
                        updatesql += mapstr[0] + "=@" + mapstr[0];
                    }
                }
                i++;
            }
            if (isinsert)
            {
                sqlstr = "insert into " + tablename + "(" + insertsql1 + ") values(" + insertsql2 + ")";
            }
            else
            {
                if (strpk == "")//如果没有主键,则不能进行更新操作
                {
                    return(false);
                }
                sqlstr = "update " + tablename + " set " + updatesql + " where " + strpk + "=@" + strpk;
            }

            //执行查询
            if (SqlExecNoquery(sqlstr, pams) > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #14
0
        // 保存
        private void saveParam(bool flag)
        {
            string          strCon = AccessHelper.conn;
            OleDbConnection con    = new OleDbConnection(strCon);

            con.Open();
            OleDbTransaction tra = con.BeginTransaction(); //创建事务,开始执行事务

            try
            {
                string strCreater = Utils.userId;
                string strBah     = this.tbvin.Text.Trim();
                string sqlJbxx    = "DELETE FROM FC_CLJBXX WHERE VIN = '" + strBah + "'";
                string sqlParam   = "DELETE FROM RLLX_PARAM_ENTITY WHERE VIN ='" + strBah + "'";

                if (!flag)
                {
                    AccessHelper.ExecuteNonQuery(tra, sqlJbxx, null);
                    AccessHelper.ExecuteNonQuery(tra, sqlParam, null);
                }


                string mainId = this.GetMainId(strBah);

                ArrayList sqlList = new ArrayList();

                #region 遍历参数,保存
                foreach (Control c in this.tlp.Controls)
                {
                    if (c is TextEdit || c is DevExpress.XtraEditors.ComboBoxEdit)
                    {
                        //Control[] lblc = clj.Controls.Find("lbl" + c.Name, true);
                        string paramCode  = c.Name;
                        string paramValue = c.Text;
                        string strSQL     = @"INSERT INTO RLLX_PARAM_ENTITY (PARAM_CODE,VIN,PARAM_VALUE,V_ID) 
                                    VALUES(@PARAM_CODE,@VIN,@PARAM_VALUE,@V_ID)";

                        OleDbParameter[] paramList =
                        {
                            new OleDbParameter("@PARAM_CODE",  paramCode),
                            new OleDbParameter("@VIN",         strBah),
                            new OleDbParameter("@PARAM_VALUE", paramValue),
                            new OleDbParameter("@V_ID",        "")
                        };
                        AccessHelper.ExecuteNonQuery(tra, strSQL, paramList);
                    }
                }
                #endregion

                #region 保存车辆基本信息
                // 保存车辆基本信息
                string sqlStr = @"INSERT INTO FC_CLJBXX
                                (   VIN,
                                    HGSPBM,
                                    USER_ID,
                                    QCSCQY,
                                    JKQCZJXS,
                                    CLXH,
                                    CLZL,
                                    RLLX,
                                    ZCZBZL,
                                    ZGCS,
                                    LTGG,
                                    ZJ,
                                    CLZZRQ,
                                    UPLOADDEADLINE,
                                    TYMC,
                                    YYC,
                                    ZWPS,
                                    ZDSJZZL,
                                    EDZK,
                                    LJ,
                                    QDXS,
                                    STATUS,
                                    JYJGMC,
                                    JYBGBH,
                                    QTXX,
                                    CREATETIME,
                                    UPDATETIME
                                ) VALUES
                                (   @VIN,
                                    @HGSPBM,
                                    @USER_ID,
                                    @QCSCQY,
                                    @JKQCZJXS,
                                    @CLXH,
                                    @CLZL,
                                    @RLLX,
                                    @ZCZBZL,
                                    @ZGCS,
                                    @LTGG,
                                    @ZJ,
                                    @CLZZRQ,
                                    @UPLOADDEADLINE,
                                    @TYMC,
                                    @YYC,
                                    @ZWPS,
                                    @ZDSJZZL,
                                    @EDZK,
                                    @LJ,
                                    @QDXS,
                                    @STATUS,
                                    @JYJGMC,
                                    @JYBGBH,
                                    @QTXX,
                                    @CREATETIME,
                                    @UPDATETIME)";

                DateTime       clzzrqDate = DateTime.Parse(this.tbclzzrq.Text.Trim());
                OleDbParameter clzzrq     = new OleDbParameter("@CLZZRQ", clzzrqDate);
                clzzrq.OleDbType = OleDbType.DBDate;

                DateTime       uploadDeadlineDate = Utils.QueryUploadDeadLine(clzzrqDate);
                OleDbParameter uploadDeadline     = new OleDbParameter("@UPLOADDEADLINE", uploadDeadlineDate);
                uploadDeadline.OleDbType = OleDbType.DBDate;

                OleDbParameter creTime = new OleDbParameter("@CREATETIME", DateTime.Now);
                creTime.OleDbType = OleDbType.DBDate;
                OleDbParameter upTime = new OleDbParameter("@UPDATETIME", DateTime.Now);
                upTime.OleDbType = OleDbType.DBDate;

                OleDbParameter[] param =
                {
                    new OleDbParameter("@VIN",      this.tbvin.Text.Trim().ToUpper()),
                    new OleDbParameter("@HGSPBM",   this.tbHgspbm.Text.Trim().ToUpper()),
                    new OleDbParameter("@USER_ID",  strCreater),
                    new OleDbParameter("@QCSCQY",   this.tbqcscqy.Text.Trim()),
                    new OleDbParameter("@JKQCZJXS", this.tbjkqczjxs.Text.Trim()),
                    new OleDbParameter("@CLXH",     this.tbclxh.Text.Trim()),
                    new OleDbParameter("@CLZL",     this.tbclzl.Text.Trim()),
                    new OleDbParameter("@RLLX",     this.tbrllx.Text.Trim()),
                    new OleDbParameter("@ZCZBZL",   this.tbzczbzl.Text.Trim()),
                    new OleDbParameter("@ZGCS",     this.tbzgcs.Text.Trim()),
                    new OleDbParameter("@LTGG",     this.tbltgg.Text.Trim()),
                    new OleDbParameter("@ZJ",       this.tbzj.Text.Trim()),
                    clzzrq,
                    uploadDeadline,
                    new OleDbParameter("@TYMC",     this.tbtymc.Text.Trim()),
                    new OleDbParameter("@YYC",      this.tbyyc.Text.Trim()),
                    new OleDbParameter("@ZWPS",     this.tbzwps.Text.Trim()),
                    new OleDbParameter("@ZDSJZZL",  this.tbzdsjzzl.Text.Trim()),
                    new OleDbParameter("@EDZK",     this.tbedzk.Text.Trim()),
                    new OleDbParameter("@LJ",       this.tblj.Text.Trim()),
                    new OleDbParameter("@QDXS",     this.tbqdxs.Text.Trim()),
                    new OleDbParameter("@STATUS",   this.status),
                    new OleDbParameter("@JYJGMC",   this.tbjyjgmc.Text.Trim()),
                    new OleDbParameter("@JYBGBH",   this.tbjybgbh.Text.Trim()),
                    new OleDbParameter("@QTXX",     this.tbQtxx.Text.Trim()),
                    creTime,
                    upTime
                };
                #endregion

                AccessHelper.ExecuteNonQuery(tra, sqlStr, param);
                tra.Commit();
                strVin = strBah; //备案号
            }
            catch (Exception ex)
            {
                // MessageBox.Show("保存失败!");
                tra.Rollback();
                throw ex;
            }
            finally
            {
                con.Close();
            }
        }
Example #15
0
        public int Reinspect(string from, string to, string qcn, int amount)
        {
            this.Connection.Open();
            OleDbTransaction transaction = this.Connection.BeginTransaction();
            int result = 0;

            try
            {
                string cmdText = "SELECT 送檢次數 FROM 產品檢驗 WHERE 工時資料編號 = ?";
                OleDbCommand cmd = new OleDbCommand(cmdText, this.Connection);
                cmd.Transaction = transaction;
                cmd.Parameters.Add(new OleDbParameter("工時資料編號", from));
                int num = Convert.ToInt32(cmd.ExecuteScalar());

                cmdText = "INSERT INTO 產品檢驗 (工時資料編號,QCN,待驗數量,送檢次數,最後送檢編號,送檢日期) VALUES (?,?,?,?,?,?)";

                cmd = new OleDbCommand(cmdText, this.Connection);
                cmd.Transaction = transaction;
                cmd.Parameters.Add(new OleDbParameter("工時資料編號1", to));
                cmd.Parameters.Add(new OleDbParameter("QCN", qcn));
                cmd.Parameters.Add(new OleDbParameter("待驗數量", amount));
                cmd.Parameters.Add(new OleDbParameter("送檢次數", num + 1));
                cmd.Parameters.Add(new OleDbParameter("最後送檢編號", to));
                //cmd.Parameters.Add(new OleDbParameter("送檢日期", DateTime.Today));
                OleDbParameter paramDate = new OleDbParameter();
                paramDate.OleDbType = OleDbType.DBTimeStamp;
                paramDate.Value = DateTime.Now.ToString("s");
                cmd.Parameters.Add(paramDate);

                result = cmd.ExecuteNonQuery();

                cmdText = "UPDATE 產品檢驗 SET 重驗 = True WHERE 工時資料編號 = ?";
                cmd = new OleDbCommand(cmdText, this.Connection);
                cmd.Transaction = transaction;
                //cmd.Parameters.Add(new OleDbParameter("最後送檢編號", to));
                cmd.Parameters.Add(new OleDbParameter("工時資料編號", from));
                cmd.ExecuteNonQuery();

                cmdText = "UPDATE 產品檢驗 SET 最後送檢編號 = ? WHERE 最後送檢編號 = ?";
                cmd = new OleDbCommand(cmdText, this.Connection);
                cmd.Transaction = transaction;
                cmd.Parameters.Add(new OleDbParameter("最後送檢編號1", to));
                cmd.Parameters.Add(new OleDbParameter("最後送檢編號2", from));
                cmd.ExecuteNonQuery();

                cmdText = "INSERT INTO NG原因 (工時資料編號, 原因, 來源編號) SELECT '" + to + "' as 工時資料編號, 原因, 來源編號 FROM NG原因 WHERE 工時資料編號 = ?";
                cmd = new OleDbCommand(cmdText, this.Connection);
                cmd.Transaction = transaction;
                cmd.Parameters.Add(new OleDbParameter("工時資料編號", from));
                cmd.ExecuteNonQuery();

                transaction.Commit();
                this.Connection.Close();

                return result;
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                this.Connection.Close();
                throw ex;
            }
        }
Example #16
0
        private void Button1_Click(System.Object sender, System.EventArgs e)
        {
            if (Strings.Len(Strings.Trim(cmbUserType.Text)) == 0)
            {
                MessageBox.Show("Please select user type", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cmbUserType.Focus();
                return;
            }
            if (Strings.Len(Strings.Trim(txtUsername.Text)) == 0)
            {
                MessageBox.Show("Please enter user name", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtUsername.Focus();
                return;
            }
            if (Strings.Len(Strings.Trim(txtPassword.Text)) == 0)
            {
                MessageBox.Show("Please enter password", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtPassword.Focus();
                return;
            }
            try {
                OleDbConnection myConnection = null;
                myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\LMS_DB.accdb;Persist Security Info=False;");
                OleDbCommand myCommand = null;
                myCommand = new OleDbCommand("SELECT users.username,User_password FROM Users,Registration where Registration.Username=users.username and Users.Username = @Username and user_password = @UserPassword", myConnection);

                OleDbParameter uName     = new OleDbParameter("@Username", SqlDbType.VarChar);
                OleDbParameter uPassword = new OleDbParameter("@UserPassword", SqlDbType.VarChar);
                uName.Value     = txtUsername.Text;
                uPassword.Value = txtPassword.Text;
                myCommand.Parameters.Add(uName);

                myCommand.Parameters.Add(uPassword);

                myCommand.Connection.Open();

                OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

                object Login = 0;


                if (myReader.HasRows)
                {
                    myReader.Read();

                    Login = myReader[Login];
                }


                if (Login == null)
                {
                    Interaction.MsgBox("Login is Failed...Try again !", MsgBoxStyle.Critical, "Login Denied");
                    txtUsername.Clear();
                    txtPassword.Clear();
                    txtUsername.Focus();
                }
                else
                {
                    ProgressBar1.Visible = true;
                    ProgressBar1.Maximum = 5000;
                    ProgressBar1.Minimum = 0;
                    ProgressBar1.Value   = 4;
                    ProgressBar1.Step    = 1;

                    for (i = 0; i <= 5000; i++)
                    {
                        ProgressBar1.PerformStep();
                    }
                    this.Hide();
                    My.MyProject.Forms.frmMain.lblUser.Text = txtUsername.Text;
                    My.MyProject.Forms.frmMain.Show();
                }
                myCommand.Dispose();
                myConnection.Close();
            } catch (Exception ex) {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #17
0
        /// <summary>
        /// 返回id的insert方法
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static int insertReturnID(object obj)
        {
            List <OleDbParameter> para = new List <OleDbParameter>();
            //反射出类型
            Type objclass = obj.GetType();
            //拼SQL开始
            string sqltou = "insert into " + objclass.Name + "(";
            string sqlval = "values('";
            //验证是否为pojo类。
            PropertyInfo ispojo = objclass.GetProperty("Px");

            if (ispojo == null)
            {
                throw new Exception("验证pojo类失败!");
            }
            //获取所有属性
            PropertyInfo[] fields = objclass.GetProperties();
            foreach (PropertyInfo field in fields)
            {
                //去掉验证属性及主键
                if (field.Name != "Px" && field.Name != ispojo.GetValue(obj, null).ToString())
                {
                    object         fvalue = field.GetValue(obj, null);
                    OleDbParameter tt     = new OleDbParameter();
                    tt.ParameterName = "@" + field.Name;
                    tt.Value         = fvalue;
                    //验证整形
                    if (field.PropertyType.Name == "Int32")
                    {
                        tt.OleDbType = OleDbType.Integer;
                    }
                    if (field.PropertyType.Name == "String")
                    {
                        tt.OleDbType = OleDbType.VarChar;
                    }
                    if (field.PropertyType.Name == "Boolean")
                    {
                        tt.OleDbType = OleDbType.Boolean;
                    }
                    if (field.PropertyType.Name == "DateTime")
                    {
                        tt.OleDbType = OleDbType.Date;
                    }
                    //大字段
                    if (field.PropertyType.Name == "Byte[]")
                    {
                        tt.OleDbType = OleDbType.VarBinary;
                    }
                    if (fvalue != null)
                    {
                        para.Add(tt);
                        sqltou += field.Name + ",";
                        sqlval  = sqlval.Substring(0, sqlval.Length - 1) + tt.ParameterName + ",'";
                    }
                }
            }
            String sql = sqltou.Substring(0, sqltou.Length - 1) + ")" + sqlval.Substring(0, sqlval.Length - 2) + ");";

            //拼SQL结束。
            return(ExecuteInsert(sql, para.ToArray()));
        }
Example #18
0
    /// <summary>
    /// 执行返回受的行数的TSQL语句
    /// </summary>
    /// <param name="sql">TSQL语句</param>
    /// <param name="dbtype">数据库类型</param>
    /// <param name="comtype">命令执行器类型</param>
    /// <param name="param">参数数组</param>
    /// <returns></returns>
    public static int ExecuteNonQuery(string sql, string dbtype, CommandType comtype, params object[] param)
    {
        int result = 0;

        switch (dbtype)
        {
        case "SQL2005":
            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                using (SqlCommand com = con.CreateCommand())
                {
                    com.CommandType = comtype;
                    com.CommandText = sql;
                    if (param != null && param.Length > 0)
                    {
                        for (int i = 0; i < param.Length; i++)
                        {
                            SqlParameter p = new SqlParameter("@" + i, param[i]);
                            com.Parameters.Add(p);
                        }
                    }
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    result = com.ExecuteNonQuery();
                    con.Close();
                    com.Dispose();
                }
            }
            break;

        case "OleDB":
            using (OleDbConnection con = new OleDbConnection(ConnectionString))
            {
                using (OleDbCommand com = con.CreateCommand())
                {
                    com.CommandText = sql;
                    if (param != null && param.Length > 0)
                    {
                        for (int i = 0; i < param.Length; i++)
                        {
                            OleDbParameter p = new OleDbParameter("@" + i, param[i]);
                            com.Parameters.Add(p);
                        }
                    }
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    result = com.ExecuteNonQuery();
                    con.Close();
                    com.Dispose();
                }
            }
            break;

        default:
            break;
        }

        return(result);
    }
Example #19
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter           = "Execl files (*.xls)|*.xls";
            saveFileDialog.FilterIndex      = 0;
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.CreatePrompt     = true;
            saveFileDialog.Title            = "Export Excel File";
            saveFileDialog.ShowDialog();
            if (saveFileDialog.FileName == "")
            {
                return;
            }
            System.Data.DataTable Table = ds.Tables[0];
            string ExcelFilePath        = saveFileDialog.FileName;

            WaitFormService.CreateWaitForm();
            WaitFormService.SetWaitFormCaption(" 正在导出,请稍候......");
            try
            {
                if ((Table.TableName.Trim().Length == 0) || (Table.TableName.ToLower() == "table"))
                {
                    Table.TableName = "Sheet1";
                }

                //数据表的列数
                int ColCount = Table.Columns.Count;

                //用于记数,实例化参数时的序号
                int i = 0;

                //创建参数
                OleDbParameter[] para = new OleDbParameter[ColCount];

                //创建表结构的SQL语句
                string TableStructStr = @"Create Table " + Table.TableName + "(";

                //连接字符串
                string          connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFilePath + ";Extended Properties=Excel 8.0;";
                OleDbConnection objConn    = new OleDbConnection(connString);

                //创建表结构
                OleDbCommand objCmd = new OleDbCommand();

                //数据类型集合
                ArrayList DataTypeList = new ArrayList();
                DataTypeList.Add("System.Decimal");
                DataTypeList.Add("System.Double");
                DataTypeList.Add("System.Int16");
                DataTypeList.Add("System.Int32");
                DataTypeList.Add("System.Int64");
                DataTypeList.Add("System.Single");

                //遍历数据表的所有列,用于创建表结构
                foreach (DataColumn col in Table.Columns)
                {
                    //如果列属于数字列,则设置该列的数据类型为double
                    if (DataTypeList.IndexOf(col.DataType.ToString()) >= 0)
                    {
                        para[i] = new OleDbParameter("@" + col.ColumnName, OleDbType.Double);
                        objCmd.Parameters.Add(para[i]);

                        //如果是最后一列
                        if (i + 1 == ColCount)
                        {
                            TableStructStr += col.ColumnName + " double)";
                        }
                        else
                        {
                            TableStructStr += col.ColumnName + " double,";
                        }
                    }
                    else
                    {
                        para[i] = new OleDbParameter("@" + col.ColumnName, OleDbType.VarChar);
                        objCmd.Parameters.Add(para[i]);

                        //如果是最后一列
                        if (i + 1 == ColCount)
                        {
                            TableStructStr += col.ColumnName + " varchar)";
                        }
                        else
                        {
                            TableStructStr += col.ColumnName + " varchar,";
                        }
                    }
                    i++;
                }

                //创建Excel文件及文件结构
                try
                {
                    objCmd.Connection  = objConn;
                    objCmd.CommandText = TableStructStr;

                    if (objConn.State == ConnectionState.Closed)
                    {
                        objConn.Open();
                    }
                    objCmd.ExecuteNonQuery();
                }
                catch (Exception exp)
                {
                    throw exp;
                }

                //插入记录的SQL语句
                string InsertSql_1 = "Insert into " + Table.TableName + " (";
                string InsertSql_2 = " Values (";
                string InsertSql   = "";

                //遍历所有列,用于插入记录,在此创建插入记录的SQL语句
                for (int colID = 0; colID < ColCount; colID++)
                {
                    if (colID + 1 == ColCount)  //最后一列
                    {
                        InsertSql_1 += Table.Columns[colID].ColumnName + ")";
                        InsertSql_2 += "@" + Table.Columns[colID].ColumnName + ")";
                    }
                    else
                    {
                        InsertSql_1 += Table.Columns[colID].ColumnName + ",";
                        InsertSql_2 += "@" + Table.Columns[colID].ColumnName + ",";
                    }
                }

                InsertSql = InsertSql_1 + InsertSql_2;

                //遍历数据表的所有数据行
                for (int rowID = 0; rowID < Table.Rows.Count; rowID++)
                {
                    for (int colID = 0; colID < ColCount; colID++)
                    {
                        if (para[colID].DbType == DbType.Double && Table.Rows[rowID][colID].ToString().Trim() == "")
                        {
                            para[colID].Value = 0;
                        }
                        else
                        {
                            para[colID].Value = Table.Rows[rowID][colID].ToString().Trim();
                        }
                    }
                    try
                    {
                        objCmd.CommandText = InsertSql;
                        objCmd.ExecuteNonQuery();
                    }
                    catch (Exception exp)
                    {
                        string str = exp.Message;
                    }
                }
                try
                {
                    if (objConn.State == ConnectionState.Open)
                    {
                        objConn.Close();
                    }
                }
                catch (Exception exp)
                {
                    WaitFormService.CloseWaitForm();
                    throw exp;
                }
                WaitFormService.CloseWaitForm();
                MessageBox.Show("导出完成!", "软件提示");
            }
            catch
            {
                WaitFormService.CloseWaitForm();
                MessageBox.Show("导出失败!", "软件提示");
            }
        }
        public DataTable GetResultsTable(Query query, out List <string> messages)
        {
            messages = new List <string>();
            DataTable readerTable = null;

            _connection.Open();

            using (OleDbCommand command = new OleDbCommand())
            {
                command.Connection = _connection;

                command.CommandType = query.QueryCommandType;

                if (query.QueryCommandType == CommandType.Text)
                {
                    command.CommandText = query.QueryDefinition;
                }

                if (query.QueryCommandType == CommandType.TableDirect)
                {
                    command.CommandText = "[" + query.QueryName + "]";
                }

                if (query.QueryCommandType == CommandType.StoredProcedure)
                {
                    command.CommandText = "[" + query.QueryName + "]";

                    if (query.QueryParameters.Entities.Count > 0)
                    {
                        foreach (QueryParameter parameter in query.QueryParameters.Entities)
                        {
                            OleDbParameter p = new OleDbParameter(parameter.ParameterName, parameter.Type);

                            if (parameter.Value != null)
                            {
                                Type type = TypeMapper.MapOleDbTypeToCLR(parameter.Type);
                                try
                                {
                                    p.Value = Convert.ChangeType(parameter.Value, type);
                                }
                                catch (Exception ex)
                                {
                                    messages.Add(string.Format("Invalid data specified for parameter {0}. No value passed to query. ({1})", p.ParameterName, ex.Message));
                                    p.Value = DBNull.Value;
                                }
                            }
                            else
                            {
                                p.Value = DBNull.Value;
                            }
                            command.Parameters.Add(p);
                        }
                    }
                }

                try
                {
                    using (OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        if (reader.HasRows)
                        {
                            readerTable = new DataTable(query.QueryName);

                            for (int count = 0; count < reader.FieldCount; count++)
                            {
                                DataColumn column = new DataColumn(reader.GetName(count), reader.GetFieldType(count));
                                readerTable.Columns.Add(column);
                            }

                            while (reader.Read())
                            {
                                DataRow dr = readerTable.NewRow();
                                for (int i = 0; i < reader.FieldCount; i++)
                                {
                                    dr[i] = reader.GetValue(reader.GetOrdinal(reader.GetName(i)));
                                }
                                readerTable.Rows.Add(dr);
                            }
                        }

                        reader.Close();
                    }
                }
                catch (Exception ex)
                {
                    messages.Add(ex.Message);
                }
                finally
                {
                    _connection.Close();
                }

                command.Parameters.Clear();
                messages.Add(string.Format("The '{0}' query was processed.", query.QueryName));
            }

            return(readerTable);
        }
Example #21
0
// <Snippet1>
    public void CreateOleDbParameter()
    {
        OleDbParameter parameter = new OleDbParameter("Description", OleDbType.VarChar, 88);

        parameter.Direction = ParameterDirection.Output;
    }
Example #22
0
        /// <summary>
        /// 向数据库插入行
        /// </summary>
        /// <param name="table">表</param>
        /// <param name="value">插入行的字段值,用","隔开,形如"FS-CH-001,1758.1,2016-4-28 10:11:58,0"</param>
        public bool OrclUpdate(string table, string value, SqlType sqlType)
        {
            int    count  = 0;
            string sqlstr = "";

            OleDbParameter[] parameters = null;
            try {
                string[] values = value.Split(new char[] { ',' });
                if (table.Contains("PH"))
                {
                    sqlstr = "insert into [" + table + "](OBJID, OBJSTATUS, MODIFYDATE, phValue, decTime, decpointCode) " +
                             "values(" + GetID() + ", @values0,@values1,@values2,@values3,@values4)";
                    parameters          = new OleDbParameter[5];
                    parameters[0]       = new OleDbParameter("@values0", System.Data.OleDb.OleDbType.Integer);
                    parameters[1]       = new OleDbParameter("@values1", System.Data.OleDb.OleDbType.Date);
                    parameters[2]       = new OleDbParameter("@values2", System.Data.OleDb.OleDbType.Single);
                    parameters[3]       = new OleDbParameter("@values3", System.Data.OleDb.OleDbType.Date);
                    parameters[4]       = new OleDbParameter("@values4", System.Data.OleDb.OleDbType.VarChar, 200);
                    parameters[0].Value = 0;
                    parameters[1].Value = System.DateTime.Parse(values[1]);
                    parameters[2].Value = values[3];
                    parameters[3].Value = System.DateTime.Parse(values[1]);
                    int cutIndex = table.IndexOf("_PH");
                    parameters[4].Value = table.Remove(cutIndex, table.Length - cutIndex).Remove(0, PreTableName.Length);
                    Log.logger.Info("decpointCode:" + parameters[4].Value.ToString() + "|" + table + "|" + cutIndex.ToString() + "|" + PreTableName);
                    count = MssqlClient.ExecuteNonQuery(sqlstr, parameters);
                    //OrclUpdateStatus("corr_measurepoint", values[0] + ",0", sqlType);//同步一次status
                }
                else if (table.Contains("Ind"))
                {
                    sqlstr = "insert into [" + table + "](OBJID, OBJSTATUS, MODIFYDATE, lossValue, decTime, decpointCode) " +
                             "values(" + GetID() + ", @values0,@values1,@values2,@values3,@values4)";
                    parameters          = new OleDbParameter[5];
                    parameters[0]       = new OleDbParameter("@values0", System.Data.OleDb.OleDbType.Integer);
                    parameters[1]       = new OleDbParameter("@values1", System.Data.OleDb.OleDbType.Date);
                    parameters[2]       = new OleDbParameter("@values2", System.Data.OleDb.OleDbType.Single);
                    parameters[3]       = new OleDbParameter("@values3", System.Data.OleDb.OleDbType.Date);
                    parameters[4]       = new OleDbParameter("@values4", System.Data.OleDb.OleDbType.VarChar, 200);
                    parameters[0].Value = 0;
                    parameters[1].Value = System.DateTime.Parse(values[1]);
                    parameters[2].Value = values[3];
                    parameters[3].Value = System.DateTime.Parse(values[1]);
                    int cutIndex = table.IndexOf("_Ind");
                    parameters[4].Value = table.Remove(cutIndex, table.Length - cutIndex).Remove(0, PreTableName.Length);
                    Log.logger.Info("decpointCode:" + parameters[4].Value.ToString() + "|" + table + "|" + cutIndex.ToString() + "|" + PreTableName);
                    count = MssqlClient.ExecuteNonQuery(sqlstr, parameters);
                }
                Log.logger.Info(table + "上传成功:" + sqlstr);   //debug
                if (count > 0)
                {
                    lastStatus = true;
                    return(true);
                }
                else
                {
                    lastStatus = false;
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log.logger.Error("数据库插入失败", ex);
                lastStatus = false;
                return(false);
            }
        }
Example #23
0
 protected void gvNews_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName.ToString() == "DelCommand")
     {
         int             indes     = (int)gvNews.DataKeys[Convert.ToInt16(e.CommandArgument)].Value;
         string          delsqlstr = "delete from tb_news where n_ID=@id";
         OleDbConnection conn      = GetOleDbConnection();
         OleDbCommand    delcmd    = new OleDbCommand(delsqlstr, conn);
         OleDbParameter  para      = new OleDbParameter("@id", indes);
         delcmd.Parameters.Add(para);
         conn.Open();
         int rows = delcmd.ExecuteNonQuery();
         conn.Close();
         if (rows > 0)
         {
             DisplayData(AspNetNews.CurrentPageIndex, AspNetNews.PageSize);
         }
         else
         {
             return;
         }
     }
     else if (e.CommandName.ToString() == "AuditCommand")
     {
         int             indes        = (int)gvNews.DataKeys[Convert.ToInt16(e.CommandArgument)].Value;
         string          updatesqlstr = "update tb_news set n_audit=1 where n_id=@id";
         OleDbConnection conn         = GetOleDbConnection();
         OleDbCommand    updatecmd    = new OleDbCommand(updatesqlstr, conn);
         OleDbParameter  para         = new OleDbParameter("@id", indes);
         updatecmd.Parameters.Add(para);
         conn.Open();
         int rows = updatecmd.ExecuteNonQuery();
         conn.Close();
         if (rows > 0)
         {
             DisplayData(AspNetNews.CurrentPageIndex, AspNetNews.PageSize);
         }
         else
         {
             return;
         }
     }
     else if (e.CommandName.ToString() == "CancelAuditCommand")
     {
         int             indes        = (int)gvNews.DataKeys[Convert.ToInt16(e.CommandArgument)].Value;
         string          updatesqlstr = "update tb_news set n_audit=0 where n_id=@id";
         OleDbConnection conn         = GetOleDbConnection();
         OleDbCommand    updatecmd    = new OleDbCommand(updatesqlstr, conn);
         OleDbParameter  para         = new OleDbParameter("@id", indes);
         updatecmd.Parameters.Add(para);
         conn.Open();
         int rows = updatecmd.ExecuteNonQuery();
         conn.Close();
         if (rows > 0)
         {
             DisplayData(AspNetNews.CurrentPageIndex, AspNetNews.PageSize);
         }
         else
         {
             return;
         }
     }
 }
Example #24
0
    public ListDictionary AdvSearch_ListDictionary(int aot, string jf, int state, int city, int Travel, string Lang, string fullPart, string Shift, int PostDate, string keywrd, int PageNumber, int RowPerPage, string SortExp, string SortOrder)
    {
        if (SortExp == null)
        {
            SortExp = "";
        }
        if (SortOrder == null)
        {
            SortOrder = "";
        }

        OleDbConnection con = new OleDbConnection(constring);

        con.Open();
        OleDbCommand cmd = new OleDbCommand("p_boaJobSearchAdvanced", con);

        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@aot", aot);
        cmd.Parameters.AddWithValue("@Family", jf.TrimEnd(",".ToCharArray()));
        cmd.Parameters.AddWithValue("@State", state);
        cmd.Parameters.AddWithValue("@City", city);
        cmd.Parameters.AddWithValue("@Travel", Travel);
        cmd.Parameters.AddWithValue("@Lang", Lang.TrimEnd(",".ToCharArray()));
        cmd.Parameters.AddWithValue("@fullPart", fullPart.TrimEnd(",".ToCharArray()));
        cmd.Parameters.AddWithValue("@Shift", Shift.TrimEnd(",".ToCharArray()));
        cmd.Parameters.AddWithValue("@PostDate", PostDate);
        cmd.Parameters.AddWithValue("@KeyWords", keywrd);
        cmd.Parameters.AddWithValue("@SortExp", SortExp);
        cmd.Parameters.AddWithValue("@SortOrder", SortOrder);
        OleDbParameter trows = cmd.Parameters.Add("@totalrows", OleDbType.Integer);

        trows.Direction = ParameterDirection.Output;

        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataSet          ds = new DataSet();

        da.Fill(ds, (PageNumber - 1) * RowPerPage, RowPerPage, "SearchResults");

        int TotalRow = Convert.ToInt32(trows.Value);
        int partialpagefactor;

        partialpagefactor = TotalRow % RowPerPage > 0 ? 1 : 0;
        int TotalPage = (TotalRow / RowPerPage) + partialpagefactor;

        ListDictionary MyListDictionary = new ListDictionary();

        MyListDictionary.Add("RecordCount", TotalRow);
        MyListDictionary.Add("JobSearchResults", ds.Tables[0]);
        MyListDictionary.Add("NextButton", ShowNextButton(TotalRow, PageNumber, TotalPage));
        MyListDictionary.Add("PrevButton", ShowPrevButton(TotalRow, PageNumber, TotalPage));
        if (TotalRow == 0)
        {
            MyListDictionary.Add("PageOfPages", "Page 0 of 0");
        }
        else
        {
            MyListDictionary.Add("PageOfPages", "Page " + Convert.ToString(PageNumber) + " of " + Convert.ToString(TotalPage));
        }
        int startpage;
        int endpage;

        startpage = 1 + (RowPerPage * (PageNumber - 1));
        endpage   = startpage + ds.Tables[0].Rows.Count - 1;
        MyListDictionary.Add("JobToJobs", "Showing " + Convert.ToString(startpage) + " to " + Convert.ToString(endpage) + " of " + TotalRow + " jobs.");
        con.Close();
        return(MyListDictionary);
    }
Example #25
0
        /// <summary>
        /// 将数据导出至Excel文件
        /// </summary>
        /// <param name="table">DataTable对象</param>
        /// <param name="columns">要导出的数据列集合</param>
        /// <param name="excelFilePath">Excel文件路径</param>
        public static bool OutputToExcel(DataTable table, ArrayList columns, string excelFilePath)
        {
            if (File.Exists(excelFilePath))
            {
                throw new Exception("该文件已经存在!");
            }

            //如果数据列数大于表的列数,取数据表的所有列
            if (columns.Count > table.Columns.Count)
            {
                for (var s = table.Columns.Count + 1; s <= columns.Count; s++)
                {
                    columns.RemoveAt(s);   //移除数据表列数后的所有列
                }
            }

            //遍历所有的数据列,如果有数据列的数据类型不是 DataColumn,则将它移除
            var column = new DataColumn();

            for (var j = 0; j < columns.Count; j++)
            {
                try
                {
                    column = (DataColumn)columns[j];
                }
                catch (Exception)
                {
                    columns.RemoveAt(j);
                }
            }
            if ((table.TableName.Trim().Length == 0) || (table.TableName.ToLower() == "table"))
            {
                table.TableName = "Sheet1";
            }

            //数据表的列数
            var colCount = columns.Count;

            //创建参数
            var para = new OleDbParameter[colCount];

            //创建表结构的SQL语句
            var tableStructStr = @"Create Table " + table.TableName + "(";

            //连接字符串
            var connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";Extended Properties=Excel 8.0;";
            var objConn    = new OleDbConnection(connString);

            //创建表结构
            var objCmd = new OleDbCommand();

            //数据类型集合
            var dataTypeList = new ArrayList();

            dataTypeList.Add("System.Decimal");
            dataTypeList.Add("System.Double");
            dataTypeList.Add("System.Int16");
            dataTypeList.Add("System.Int32");
            dataTypeList.Add("System.Int64");
            dataTypeList.Add("System.Single");

            var col = new DataColumn();

            //遍历数据表的所有列,用于创建表结构
            for (var k = 0; k < colCount; k++)
            {
                col = (DataColumn)columns[k];

                //列的数据类型是数字型
                if (dataTypeList.IndexOf(col.DataType.ToString().Trim()) >= 0)
                {
                    para[k] = new OleDbParameter("@" + col.Caption.Trim(), OleDbType.Double);
                    objCmd.Parameters.Add(para[k]);

                    //如果是最后一列
                    if (k + 1 == colCount)
                    {
                        tableStructStr += col.Caption.Trim() + " Double)";
                    }
                    else
                    {
                        tableStructStr += col.Caption.Trim() + " Double,";
                    }
                }
                else
                {
                    para[k] = new OleDbParameter("@" + col.Caption.Trim(), OleDbType.VarChar);
                    objCmd.Parameters.Add(para[k]);

                    //如果是最后一列
                    if (k + 1 == colCount)
                    {
                        tableStructStr += col.Caption.Trim() + " VarChar)";
                    }
                    else
                    {
                        tableStructStr += col.Caption.Trim() + " VarChar,";
                    }
                }
            }

            //创建Excel文件及文件结构
            try
            {
                objCmd.Connection  = objConn;
                objCmd.CommandText = tableStructStr;

                if (objConn.State == ConnectionState.Closed)
                {
                    objConn.Open();
                }
                objCmd.ExecuteNonQuery();
            }
            catch (Exception exp)
            {
                throw exp;
            }

            //插入记录的SQL语句
            var insertSql1 = "Insert into " + table.TableName + " (";
            var insertSql2 = " Values (";
            var insertSql  = "";

            //遍历所有列,用于插入记录,在此创建插入记录的SQL语句
            for (var colId = 0; colId < colCount; colId++)
            {
                if (colId + 1 == colCount)  //最后一列
                {
                    insertSql1 += columns[colId].ToString().Trim() + ")";
                    insertSql2 += "@" + columns[colId].ToString().Trim() + ")";
                }
                else
                {
                    insertSql1 += columns[colId].ToString().Trim() + ",";
                    insertSql2 += "@" + columns[colId].ToString().Trim() + ",";
                }
            }

            insertSql = insertSql1 + insertSql2;

            //遍历数据表的所有数据行
            var dataCol = new DataColumn();

            for (var rowId = 0; rowId < table.Rows.Count; rowId++)
            {
                for (var colId = 0; colId < colCount; colId++)
                {
                    //因为列不连续,所以在取得单元格时不能用行列编号,列需得用列的名称
                    dataCol = (DataColumn)columns[colId];
                    if (para[colId].DbType == DbType.Double && table.Rows[rowId][dataCol.Caption].ToString().Trim() == "")
                    {
                        para[colId].Value = 0;
                    }
                    else
                    {
                        para[colId].Value = table.Rows[rowId][dataCol.Caption].ToString().Trim();
                    }
                }
                try
                {
                    objCmd.CommandText = insertSql;
                    objCmd.ExecuteNonQuery();
                }
                catch (Exception exp)
                {
                    var str = exp.Message;
                }
            }
            try
            {
                if (objConn.State == ConnectionState.Open)
                {
                    objConn.Close();
                }
            }
            catch (Exception exp)
            {
                throw exp;
            }
            return(true);
        }
Example #26
0
    public ListDictionary AdvSearch_ListDictionaryInternational(string CountryID, string LocationID, string keywrd, string FamilyID, int PageNumber, int RowPerPage, string SortExp, string SortOrder, string BOAFeedName, string City)
    {
        if (SortExp == null)
        {
            SortExp = "";
        }
        if (SortOrder == null)
        {
            SortOrder = "";
        }

        OleDbConnection con = new OleDbConnection(constring);

        con.Open();
        OleDbCommand cmd = new OleDbCommand("p_boaJobSearchAdvancedInternational", con);

        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@CountryID", CountryID);
        cmd.Parameters.AddWithValue("@LocationID", LocationID);
        cmd.Parameters.AddWithValue("@FamiyID", FamilyID);
        cmd.Parameters.AddWithValue("@KeyWords", keywrd);
        cmd.Parameters.AddWithValue("@SortExp", SortExp);
        cmd.Parameters.AddWithValue("@SortOrder", SortOrder);
        cmd.Parameters.AddWithValue("@BOAFeedName", BOAFeedName);
        cmd.Parameters.AddWithValue("@City", City);

        OleDbParameter trows = cmd.Parameters.Add("@totalrows", OleDbType.Integer);

        trows.Direction = ParameterDirection.Output;

        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataSet          ds = new DataSet();

        da.Fill(ds, (PageNumber - 1) * RowPerPage, RowPerPage, "SearchResults");

        int TotalRow = Convert.ToInt32(trows.Value);
        int partialpagefactor;

        partialpagefactor = TotalRow % RowPerPage > 0 ? 1 : 0;
        int TotalPage = (TotalRow / RowPerPage) + partialpagefactor;

        ListDictionary MyListDictionary = new ListDictionary();

        MyListDictionary.Add("RecordCount", TotalRow);
        MyListDictionary.Add("JobSearchResults", ds.Tables[0]);
        MyListDictionary.Add("NextButton", ShowNextButton(TotalRow, PageNumber, TotalPage));
        MyListDictionary.Add("PrevButton", ShowPrevButton(TotalRow, PageNumber, TotalPage));
        if (TotalRow == 0)
        {
            MyListDictionary.Add("PageOfPages", "Page 0 of 0");
        }
        else
        {
            MyListDictionary.Add("PageOfPages", "Page " + Convert.ToString(PageNumber) + " of " + Convert.ToString(TotalPage));
        }
        int startpage;
        int endpage;

        startpage = 1 + (RowPerPage * (PageNumber - 1));
        endpage   = startpage + ds.Tables[0].Rows.Count - 1;
        MyListDictionary.Add("JobToJobs", "Showing " + Convert.ToString(startpage) + " to " + Convert.ToString(endpage) + " of " + TotalRow + " jobs.");
        con.Close();
        return(MyListDictionary);
    }
        public void TestMultipleResultsets()
        {
#if !JAVA
            if (ConnectedDataProvider.GetDbType(con) == DataBaseServer.Oracle)
            {
                //In .NET there is a bug when calling a SP with multiple REFCURSORS, the workaround is to use OracleClient and not OleDb.
                //In GH we are not bug complient in this issue, because there is no workaround (We do not support the OracleClient namespace.
                this.Log("Not testing multi result set Oracle on .NET");
                return;
            }

            if (ConnectedDataProvider.GetDbType(con) == DataBaseServer.PostgreSQL)
            {
                // fail to work on .NET OLEDB
                //reader = Microsoft.ApplicationBlocks.Data.PostgresOleDbHelper.ADOExecuteReader(cmd1);
                this.Log("Not testing PostgreSQL CommandType.StoredProcedure which return SETOF");
                return;
            }
#endif

            Exception exp = null;
            BeginCase("Test multi result set from stored procedure");


            OleDbDataReader  reader = null;
            OleDbTransaction tr     = null;

            try
            {
                //Check SP with the structre : insert Select + update Select + delete Select
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }

                // transaction use was add for PostgreSQL
                tr = con.BeginTransaction();
                OleDbCommand cmd1 = new OleDbCommand("GHSP_TYPES_SIMPLE_4", con, tr);
                cmd1.CommandType = CommandType.StoredProcedure;

                OleDbParameter param = new OleDbParameter();
                param.ParameterName = "ID1";
                param.Value         = string.Format("13268_{0}", this.TestCaseNumber);
                param.OleDbType     = OleDbType.VarWChar;
                cmd1.Parameters.Add(param);

                reader = cmd1.ExecuteReader();

                //Count the number of result sets.
                int resultSetCount = 0;
                //Count the number of the records
                int recordCounter = 0;

                do
                {
                    //this.Log(string.Format("resultSetCount:{0}",resultSetCount));
                    while (reader.Read())
                    {
                        recordCounter++;
                    }
                    //this.Log(string.Format("recordCounter:{0}",recordCounter));
                    if (resultSetCount != 2)
                    {
                        Compare(recordCounter, 1);                        //Insert + update
                    }
                    else
                    {
                        Compare(recordCounter, 0);                        //Delete
                    }

                    recordCounter = 0;
                    resultSetCount++;
                }while (reader.NextResult());

                Compare(resultSetCount, 3);
            }
            catch (Exception ex)
            {
                exp = ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                tr.Commit();
                con.Close();
                EndCase(exp);
            }
        }
Example #28
0
        public static bool UnloadAnswer()
        {
            if (!(TeacherID != -1 && StudentID != -1 && TaskID != -1 && AnswerText != ""))
            {
                return(false);
            }

            string          connectString = "provider=Microsoft.ACE.Oledb.12.0;Data Source= " + System.AppDomain.CurrentDomain.BaseDirectory + "\\AducationBase.accdb;";
            OleDbConnection connection    = new OleDbConnection(connectString);
            string          query         = " SELECT Ответы.ID " +
                                            " FROM Ответы " +
                                            " WHERE( ((Ответы.ЗаданиеID) = " + TaskID + " ) AND ( (Ответы.УченикID) = " + StudentID + " ));";
            OleDbCommand command = new OleDbCommand(query, connection);

            connection.Open();
            string answerID = "";

            try
            {
                answerID = command.ExecuteScalar().ToString();
            }
            catch
            {}

            if (answerID != "")
            {
                query = "DELETE Ответы.ID" +
                        " FROM Ответы" +
                        " WHERE((Ответы.ID) = " + answerID + ");";
                command = new OleDbCommand(query, connection);
                command.ExecuteScalar();
            }
            connection.Close();

            if (AnswerFiles.Count > 0)
            {
                string Date = Convert.ToString(DateTime.Today.ToString("dd.MM.yyyy"));
                query = "INSERT INTO Ответы(ЗаданиеID, УчительID, УченикID, Дата, ТекстОтвета, ДопФайлы) " +
                        "values( '" + TaskID + "', '" + TeacherID + "', '" + StudentID + "', '" + Date + "', '" + AnswerText + "' , ? )";
                if (answerID == "")
                {
                }

                command = new OleDbCommand(query, connection);

                OleDbParameter         oleDbParameter = new OleDbParameter("ДопФайлы", OleDbType.VarBinary);
                string                 fileName       = AnswerFiles[0].directory;                              //Путь к файлу
                System.Drawing.Image   image          = System.Drawing.Image.FromFile(fileName);               //Изображение из файла.
                System.IO.MemoryStream memoryStream   = new System.IO.MemoryStream();                          //Поток в который запишем изображение
                image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);                              //Сохраняем изображение в поток.
                oleDbParameter.Value = memoryStream.ToArray();                                                 //Устанавливаем значение параметра
                command.Parameters.Add(oleDbParameter);

                connection.Open();
                command.ExecuteNonQuery();
                connection.Close();
                memoryStream.Dispose();
            }
            else
            {
                string Date = Convert.ToString(DateTime.Today.ToString("dd.MM.yyyy"));
                query = "INSERT INTO Ответы(ЗаданиеID, УчительID, УченикID, Дата, ТекстОтвета) " +
                        "values( '" + TaskID + "', '" + TeacherID + "', '" + StudentID + "', '" + Date + "', '" + AnswerText + "' )";
                command = new OleDbCommand(query, connection);
                connection.Open();
                command.ExecuteNonQuery();
                connection.Close();
            }


            return(true);
        }
Example #29
0
        private void button2_Click(object sender, EventArgs e)
        {
            try{
                String         nombreP, sucursal; int cant, monto;
                OleDbCommand   procedimientoAlmacenado;
                OleDbParameter parametro1, parametro2, salida1, salida2;

                //1- Abrir la conexión a la BD.
                cnOracle = new OleDbConnection("Provider=MSDAORA; Data Source=xe;" +
                                               "User ID=System;Password=gonbar");

                /*
                 * cnOracle = new OleDbConnection("Provider=MSDAORA; Data Source=oracle;" +
                 * "User ID=BD03;Password=gonbar");
                 */
                cnOracle.Open();
                procedimientoAlmacenado            = new OleDbCommand();
                procedimientoAlmacenado.Connection = cnOracle;

                //2- Especificar el llamado al procedimiento  (en general: al subprograma).
                procedimientoAlmacenado.CommandText = "SucursalesConProducto";
                procedimientoAlmacenado.CommandType = CommandType.StoredProcedure;

                //3- Especificar los parámetros:
                //a) primero todos los de entrada:
                nombreP    = comboBox3.SelectedItem.ToString();
                parametro1 = new OleDbParameter("NombreArticulo", nombreP);
                procedimientoAlmacenado.Parameters.Add(parametro1);

                monto      = Convert.ToInt32(textBox1.Text);
                parametro2 = new OleDbParameter("Monto", monto);
                procedimientoAlmacenado.Parameters.Add(parametro2);

                //b) luego todos los de salida (uno en este caso):
                salida1 = new OleDbParameter("cant", OleDbType.Integer,
                                             4, ParameterDirection.Output, false, 4, 0, "nombreP", DataRowVersion.Current, 0);
                salida2 = new OleDbParameter("sucursal", OleDbType.VarChar,
                                             20, ParameterDirection.Output, false, 4, 0, "nombreP", DataRowVersion.Current, 0);

                procedimientoAlmacenado.Parameters.Add(salida1);
                procedimientoAlmacenado.Parameters.Add(salida2);

                //4- Ejecutar el procedimiento (en general: el subprograma).

                procedimientoAlmacenado.ExecuteNonQuery();

                //5- Recuperar el (los) valor(es) regresado(s) por medio del (de los)
                //   parámetro(s) de salida.
                cant     = Convert.ToInt16(procedimientoAlmacenado.Parameters["cant"].Value);
                sucursal = procedimientoAlmacenado.Parameters["sucursal"].Value.ToString();
                MessageBox.Show("Nombre del Articulo: " + nombreP + ", Precio: " + monto +
                                ", Cantidad de Sucursales: " + cant + ", Sucursal: " + sucursal);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }


            comboBox3.SelectedIndex = -1;
            textBox1.Text           = "";
            //6- Cerrar la conexión a la BD.
            cnOracle.Close();
        }
Example #30
0
        public static bool update(object obj)
        {
            List <OleDbParameter> para = new List <OleDbParameter>();

            try {
                //反射出类型
                Type objclass = obj.GetType();
                //拼SQL开始
                string sqltou = "update " + objclass.Name + " set ";

                //验证是否为pojo类。
                PropertyInfo ispojo = objclass.GetProperty("Px");
                if (ispojo == null)
                {
                    return(false);
                }
                PropertyInfo px = objclass.GetProperty(ispojo.GetValue(obj, null).ToString());
                if (px == null || px.GetValue(obj, null) == null)
                {
                    return(false);
                }
                //获取所有属性
                PropertyInfo[] fields  = objclass.GetProperties();
                string         tempsql = "";
                foreach (PropertyInfo field in fields)
                {
                    //去掉验证属性及主键
                    if (field.Name != "Px" && field.Name != ispojo.GetValue(obj, null).ToString())
                    {
                        object fvalue = field.GetValue(obj, null);

                        OleDbParameter tt = new OleDbParameter();
                        tt.ParameterName = "@" + field.Name;
                        tt.IsNullable    = true;
                        if (fvalue != null)
                        {
                            tt.Value = fvalue;
                        }
                        else
                        {
                            tt.Value = DBNull.Value;
                        }
                        //验证整形
                        if (field.PropertyType.Name == "Int32")
                        {
                            tt.OleDbType = OleDbType.Integer;
                        }
                        if (field.PropertyType.Name == "String")
                        {
                            tt.OleDbType = OleDbType.VarChar;
                        }
                        if (field.PropertyType.Name == "Boolean")
                        {
                            tt.OleDbType = OleDbType.Boolean;
                        }
                        if (field.PropertyType.Name == "DateTime")
                        {
                            tt.OleDbType = OleDbType.Date;
                        }
                        //大字段
                        if (field.PropertyType.Name == "Byte[]")
                        {
                            tt.OleDbType = OleDbType.VarBinary;
                        }
                        para.Add(tt);
                        tempsql = tempsql + field.Name + "=" + tt.ParameterName + ",";
                    }
                }


                String sql = sqltou + tempsql.Substring(0, tempsql.Length - 1) + " where " + px.Name + "=" + px.GetValue(obj, null).ToString() + ";";
                //拼SQL结束。
                ExecuteNonQuery(sql, para.ToArray());
                return(true);
            } catch (Exception e) {
                MessageBox.Show(e.ToString());
                return(false);
            }
        }
Example #31
0
        /// <summary>
        /// 将数据导出至Excel文件
        /// </summary>
        /// <param name="Table">DataTable对象</param>
        /// <param name="Columns">要导出的数据列集合</param>
        /// <param name="ExcelFilePath">Excel文件路径</param>
        public static bool OutputToExcel(DataTable Table, ArrayList Columns, string ExcelFilePath)
        {
            if (File.Exists(ExcelFilePath))
            {
                throw new Exception("该文件已经存在!");
            }

            //如果数据列数大于表的列数,取数据表的所有列
            if (Columns.Count > Table.Columns.Count)
            {
                for (int s = Table.Columns.Count + 1; s <= Columns.Count; s++)
                {
                    Columns.RemoveAt(s);   //移除数据表列数后的所有列
                }
            }

            //遍历所有的数据列,如果有数据列的数据类型不是 DataColumn,则将它移除
            DataColumn column = new DataColumn();

            for (int j = 0; j < Columns.Count; j++)
            {
                try
                {
                    column = (DataColumn)Columns[j];
                }
                catch (Exception)
                {
                    Columns.RemoveAt(j);
                }
            }
            if ((Table.TableName.Trim().Length == 0) || (Table.TableName.ToLower() == "table"))
            {
                Table.TableName = "Sheet1";
            }

            //数据表的列数
            int ColCount = Columns.Count;

            //创建参数
            OleDbParameter[] para = new OleDbParameter[ColCount];

            //创建表结构的SQL语句
            string TableStructStr = @"Create Table " + Table.TableName + "(";

            //连接字符串
            string          connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFilePath + ";Extended Properties=Excel 8.0;";
            OleDbConnection objConn    = new OleDbConnection(connString);

            //创建表结构
            OleDbCommand objCmd = new OleDbCommand();

            //数据类型集合
            ArrayList DataTypeList = new ArrayList();

            DataTypeList.Add("System.Decimal");
            DataTypeList.Add("System.Double");
            DataTypeList.Add("System.Int16");
            DataTypeList.Add("System.Int32");
            DataTypeList.Add("System.Int64");
            DataTypeList.Add("System.Single");

            DataColumn col = new DataColumn();

            //遍历数据表的所有列,用于创建表结构
            for (int k = 0; k < ColCount; k++)
            {
                col = (DataColumn)Columns[k];

                //列的数据类型是数字型
                if (DataTypeList.IndexOf(col.DataType.ToString().Trim()) >= 0)
                {
                    para[k] = new OleDbParameter("@" + col.Caption.Trim(), OleDbType.Double);
                    objCmd.Parameters.Add(para[k]);

                    //如果是最后一列
                    if (k + 1 == ColCount)
                    {
                        TableStructStr += col.Caption.Trim() + " Double)";
                    }
                    else
                    {
                        TableStructStr += col.Caption.Trim() + " Double,";
                    }
                }
                else
                {
                    para[k] = new OleDbParameter("@" + col.Caption.Trim(), OleDbType.VarChar);
                    objCmd.Parameters.Add(para[k]);

                    //如果是最后一列
                    if (k + 1 == ColCount)
                    {
                        TableStructStr += col.Caption.Trim() + " VarChar)";
                    }
                    else
                    {
                        TableStructStr += col.Caption.Trim() + " VarChar,";
                    }
                }
            }

            //创建Excel文件及文件结构
            try
            {
                objCmd.Connection  = objConn;
                objCmd.CommandText = TableStructStr;

                if (objConn.State == ConnectionState.Closed)
                {
                    objConn.Open();
                }
                objCmd.ExecuteNonQuery();
            }
            catch (Exception exp)
            {
                throw exp;
            }

            //插入记录的SQL语句
            string InsertSql_1 = "Insert into " + Table.TableName + " (";
            string InsertSql_2 = " Values (";
            string InsertSql   = "";

            //遍历所有列,用于插入记录,在此创建插入记录的SQL语句
            for (int colID = 0; colID < ColCount; colID++)
            {
                if (colID + 1 == ColCount)  //最后一列
                {
                    InsertSql_1 += Columns[colID].ToString().Trim() + ")";
                    InsertSql_2 += "@" + Columns[colID].ToString().Trim() + ")";
                }
                else
                {
                    InsertSql_1 += Columns[colID].ToString().Trim() + ",";
                    InsertSql_2 += "@" + Columns[colID].ToString().Trim() + ",";
                }
            }

            InsertSql = InsertSql_1 + InsertSql_2;

            //遍历数据表的所有数据行
            DataColumn DataCol = new DataColumn();

            for (int rowID = 0; rowID < Table.Rows.Count; rowID++)
            {
                for (int colID = 0; colID < ColCount; colID++)
                {
                    //因为列不连续,所以在取得单元格时不能用行列编号,列需得用列的名称
                    DataCol = (DataColumn)Columns[colID];
                    if (para[colID].DbType == DbType.Double && Table.Rows[rowID][DataCol.Caption].ToString().Trim() == "")
                    {
                        para[colID].Value = 0;
                    }
                    else
                    {
                        para[colID].Value = Table.Rows[rowID][DataCol.Caption].ToString().Trim();
                    }
                }
                try
                {
                    objCmd.CommandText = InsertSql;
                    objCmd.ExecuteNonQuery();
                }
                catch (Exception exp)
                {
                    string str = exp.Message;
                }
            }
            try
            {
                if (objConn.State == ConnectionState.Open)
                {
                    objConn.Close();
                }
            }
            catch (Exception exp)
            {
                throw exp;
            }
            return(true);
        }
Example #32
0
 /// <summary>
 /// Returns this instance as a OleDbParameter.
 /// </summary>
 /// <returns></returns>
 protected internal OleDbParameter getOleDbParameter()
 {
     OleDbParameter res = new OleDbParameter();
     res.DbType = DbType;
     res.Direction = Direction;
     res.IsNullable = IsNullable;
     res.ParameterName = ParameterName;
     res.SourceColumn = SourceColumn;
     res.SourceVersion = SourceVersion;
     res.Value = Value;
     res.SourceColumnNullMapping = SourceColumnNullMapping;
     return res;
 }