public int AddBusType(String Name,String Description) { IDataParameter[] idp=new IDataParameter[5]; idp[0] = createParameter("@Name", Name); idp[1] = createParameter("@Description", Description); return ExecuteNonQuery("InsertBusTpye"); }
/// <summary> /// /// </summary> /// <param name="tableName"></param> /// <param name="editType"></param> public CommandStruct(string tableName, CommandMode editType) { TableName = tableName; EntityType = editType; Filter = new CommandFilter(); Parameters = new IDataParameter[0]; }
public void Create(StockPriceHistory entity) { var sql = @"insert into stockpricehistory(openprice,price,highestprice,lowestprice,ceilingprice,floorprice,yesterdaycloseprice,pricechangepercent,priceshakepercent,exchangerate,exchangeamountinhands,exchangeamountinrmb,pe,pb,flowablemarketvalue,totalmarketvalue,createtime,updatetime,code,name,date) values(@openprice,@price,@highestprice,@lowestprice,@ceilingprice,@floorprice,@yesterdaycloseprice,@pricechangepercent,@priceshakepercent,@exchangerate,@exchangeamountinhands,@exchangeamountinrmb,@pe,@pb,@flowablemarketvalue,@totalmarketvalue,@createtime,@updatetime,@code,@name,@date);"; var parameters = new IDataParameter[] { new MySqlParameter("@openprice",entity.OpenPrice), new MySqlParameter("@price",entity.Price), new MySqlParameter("@highestprice",entity.HighestPrice), new MySqlParameter("@lowestprice",entity.LowestPrice), new MySqlParameter("@ceilingprice",entity.CeilingPrice), new MySqlParameter("@floorprice",entity.FloorPrice), new MySqlParameter("@yesterdaycloseprice",entity.YesterdayClosePrice), new MySqlParameter("@pricechangepercent",entity.PriceChangePercent), new MySqlParameter("@priceshakepercent",entity.PriceShakePercent), new MySqlParameter("@exchangerate",entity.ExchangeRate), new MySqlParameter("@exchangeamountinhands",entity.ExchangeAmountInHands), new MySqlParameter("@exchangeamountinrmb",entity.ExchangeAmountInRMB), new MySqlParameter("@pe",entity.PE), new MySqlParameter("@pb",entity.PB), new MySqlParameter("@flowablemarketvalue",entity.FlowableMarketValue), new MySqlParameter("@totalmarketvalue",entity.TotalMarketValue), new MySqlParameter("@createtime",DateTime.Now), new MySqlParameter("@updatetime",DateTime.Now), new MySqlParameter("@code",entity.Code), new MySqlParameter("@name",entity.Name), new MySqlParameter("@date",entity.Date.ToString("yyyy-MM-dd")) }; this.DbRequest.ExecuteNonQuery(this.ConnectionString, sql, parameters, CommandType.Text); }
public IList<StockPriceHistory> RetrieveNewLowExchangeAmount(DateTime exchangeDate, int backDays = 10) { var exchangeDates = this._exchangeDayRepository.RetrieveLatestExchangeDaysBeforeOneDay(exchangeDate, backDays); if (exchangeDates.Count == 0) { return new List<StockPriceHistory>(); } var beginDate = exchangeDates.Min(x => x.Date); var endDate = exchangeDates.Max(x => x.Date); var sql = @"select * from stockpricehistory as ta inner join ( select code, min(exchangeamountinrmb) as minrmb from stockpricehistory where date >= @begindate and date <= @enddate and exchangeamountinrmb > 0 group by code ) as tb on ta.code = tb.code where ta.date = @exchangedate and ta.exchangeamountinrmb > 0 and ta.exchangeamountinrmb <= tb.minrmb;"; var parameters = new IDataParameter[] { new MySqlParameter("@begindate", beginDate.ToString(Setting.Date_Format_4y_2M_2d)), new MySqlParameter("@enddate", endDate.ToString(Setting.Date_Format_4y_2M_2d)), new MySqlParameter("@exchangedate", exchangeDate.ToString(Setting.Date_Format_4y_2M_2d)) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.ToModel<StockPriceHistory>(); }
public IList<StockSeasonReport> RetrieveByStock(string stockCode) { var sql = @"select a.*, b.name from stock_season_report a inner join marketstock b on a.code = b.code where a.code = @code order by a.reportday desc;"; var parameters = new IDataParameter[] { new MySqlParameter("@code", stockCode) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.ToModel<StockSeasonReport>(); }
/// <devdoc> /// Add a parameter array to the cache for the command. /// </devdoc> public void AddParameterSetToCache(IDbCommand command, IDataParameter[] parameters) { string connectionString = command.Connection.ConnectionString; string storedProcedure = command.CommandText; string key = CreateHashKey(connectionString, storedProcedure); this.paramCache[key] = parameters; }
private static IDataParameter[] CreateParameterCopy(DbCommand command) { IDataParameterCollection parameters = command.Parameters; IDataParameter[] array = new IDataParameter[parameters.Count]; parameters.CopyTo(array, 0); return CachingMechanism.CloneParameters(array); }
public static DataTable ExcuteDataTableByTextWithTrans(SqlConnection connection, SqlTransaction tran, string sqlText, IDataParameter[] paramers) { DataTable dt = new DataTable(""); if (connection.State != ConnectionState.Open) { connection.Open(); } SqlCommand cmd = new SqlCommand(sqlText, connection, tran); cmd.CommandTimeout = 300; cmd.CommandType = CommandType.Text; if (null != paramers) { foreach (SqlParameter param in paramers) { cmd.Parameters.Add(param); } } ////Add parameter to receive return value of stored procedure //SqlParameter pr = new SqlParameter("ReturnValue", SqlDbType.Int); //pr.Direction = ParameterDirection.ReturnValue; //cmd.Parameters.Add(pr); SqlDataAdapter ada = new SqlDataAdapter(cmd); ada.Fill(dt); return dt; //return pr.Value; }
public static IDataReader ExecuteDataReaderByStoredProc(string storedProcName, IDataParameter[] cmdParms, params IDataParameter[] cmdOutputParms) { DbCommand dbCommand = db.GetStoredProcCommand(storedProcName); BuildDBParameter(db, dbCommand, cmdParms); BuildDBParameterForReturnValue(db, dbCommand, cmdOutputParms); return db.ExecuteReader(dbCommand); }
/// <summary> /// 获取指定节点下的信息的集合,并显示在数据页中。 /// </summary> /// <param name="nodeId">节点Id。</param> /// <param name="isAdmin">是否是管理后台。</param> /// <param name="pageIndex">要返回的结果页的索引。pageIndex 从零开始。</param> /// <param name="pageSize">要返回的结果页的大小。</param> /// <param name="totalRecords">匹配的结果总数。</param> /// <returns>包含一页 pageSize InfoEntity 对象的 List 集合,这些对象从 pageIndex 指定的页开始。</returns> public virtual List<InfoEntity> GetByNodeId(int nodeId, bool isAdmin, int pageIndex, int pageSize, out int totalRecords) { Contract.Requires(nodeId > 0); Contract.Requires(pageIndex > 0); Contract.Requires(pageSize > 0); IDataParameter[] parameters = new IDataParameter[5]; parameters[0] = this.db.NewDataParameter("@NodeId", "%" + nodeId.ToString() + "%"); parameters[1] = this.db.NewDataParameter("@PageIndex", pageIndex); parameters[2] = this.db.NewDataParameter("@PageSize", pageSize); parameters[3] = this.db.NewDataParameter("@IsAdmin", isAdmin); parameters[4] = this.db.NewOutputDataParameter("@Count"); parameters[4].DbType = DbType.Int32; List<InfoEntity> infos = new List<InfoEntity>(pageSize); using (IDataReader reader = this.db.ExcuteReader(CommandType.StoredProcedure, "EF_Info_GetByNodeId", parameters)) { while (reader.Read()) { InfoEntity info = this.PopulateInfo(reader); infos.Add(info); } } totalRecords = (int)this.db.GetOutputDataParameter("@Count").Value; return infos; }
/// <summary> /// Determines if a parameter is an XML type parameter. /// </summary> /// <param name="command">The related command object.</param> /// <param name="parameter">The parameter to test.</param> /// <returns>True if the parameter is an XML parameter.</returns> public override bool IsXmlParameter(IDbCommand command, IDataParameter parameter) { if (parameter == null) throw new ArgumentNullException("parameter"); var op = (OracleParameter)parameter; return op.OracleDbType == OracleDbType.XmlType; }
protected override void OnMapParameter(IDataParameter input, IDataParameter output) { if (input.DbType == DbType.String && ((string)input.Value).Length > 4000) { ((SqlCeParameter)output).SqlDbType = SqlDbType.NText; } }
internal static Boolean TryGetCart(String Emplid, out List<ShopCartItem> result, out Exception error) { result = new List<ShopCartItem>(); error = null; try { using (DataWorker dw = DataWorkerFactory.CreateDataWorker("RDSDB")) { IDataParameter[] args = new IDataParameter[]{ dw.NewParameter("EMPLID", Emplid) }; DataTable dt = dw.ExecuteDataTable("PWEATHERBY.SHOP_CART.GetCart", CommandType.StoredProcedure, ref args); foreach (DataRow dr in dt.Rows) { ShopCartItem item = new ShopCartItem(); item.Term = Convert.ToString(dr["TERM"]); item.SessionGroup = Convert.ToString(dr["SESSION_GROUP"]); item.CourseID = Convert.ToString(dr["COURSE_ID"]); item.CourseOfferNbr = Convert.ToString(dr["COURSE_OFFER_NBR"]); item.Subject = Convert.ToString(dr["SUBJECT"]); item.ClassNumber = Convert.ToString(dr["CLASS_NUMBER"]); item.ClassSection = Convert.ToString(dr["CLASS_SECTION"]); item.RegistrationNbr = Convert.ToString(dr["REGISTRATION_NBR"]); result.Add(item); } return true; } } catch (Exception e) { error = e; } return false; }
/// <summary> /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值) /// </summary> /// <param name="connection">数据库连接</param> /// <param name="storedProcName">存储过程名</param> /// <param name="parameters">存储过程参数</param> /// <returns>SqlCommand</returns> public static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters) { SqlCommand command = new SqlCommand(storedProcName, connection); command.CommandType = CommandType.StoredProcedure; /* * 修改点(刘强) * 当要执行的存储过程没有参数时,这里会报错,所以加了一个if判断,判断parameters不为空时,才去执行foreach * **/ if (parameters != null) { foreach (SqlParameter parameter in parameters) { if (parameter != null) { // 检查未分配值的输出参数,将其分配以DBNull.Value. if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } command.Parameters.Add(parameter); } } } return command; }
public int InsertPacking_Place(int id,String name,int c_id,Boolean status) { IDataParameter[] idp = new IDataParameter[3]; idp[0] = createParameter("@Name", name); idp[1] = createParameter("@Ci_Id", c_id); idp[2] = createParameter("@Status", status); return ExecuteNonQuery("InsertParking_Place",idp); }
public DataTable GetList_PhuCap_byCNVC(string p_ma_hop_dong, string p_ma_nv) { IDataParameter[] paras = new IDataParameter[2]{ new NpgsqlParameter("p_ma_hop_dong",p_ma_hop_dong), new NpgsqlParameter("p_ma_nv",p_ma_nv) }; return dp.getDataTableProc("sp_select_cnvc_phu_cap", paras); }
public Binding(PhpReference/*!*/ variable, IDataParameter/*!*/ parameter, ParameterType type) { Debug.Assert(variable != null && parameter != null && type != ParameterType.Invalid); this.Variable = variable; this.Parameter = parameter; this.Type = type; }
public virtual object ExecuteSingle(string sql, IDataParameter[] parameters) { CheckConnection(); using (SqlCommand cmd = new SqlCommand(sql, Connection)) { return cmd.ExecuteScalar(); } }
public PersonalExchangeHistory Retrieve(int exchangeHistoryId) { var sql = @"select * from personalexchangehistory where id = @id;"; var parameters = new IDataParameter[] { new MySqlParameter("@id", exchangeHistoryId) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.Rows.Count == 0 ? null : table.Rows[0].ToModel<PersonalExchangeHistory>(); }
public static string GetParameterSpecifier(this IProviderMetadata metadata, IDataParameter parameter) { if (parameter == null) throw new ArgumentNullException("parameter"); if (!parameter.ParameterName.StartsWith("@", StringComparison.Ordinal)) throw new ArgumentException("Parameter names must start with an '@'."); string name = parameter.ParameterName.Substring(1); // the name itself starts after the @ return metadata.ParameterExpression.Replace("p", name); }
public void SetParameter(IDataParameter parameter, object value) { if (value == null) { value = (object)DBNull.Value; } parameter.Value = value; }
public IList<Filter> GetPersonalFilters(int userId) { var sql = @"select * from filter where userid = @userid;"; var parameters = new IDataParameter[] { new MySqlParameter("@userid", userId) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.ToModel<Filter>(); }
/// <summary> /// 创建 SqlCommand 对象实例(用来返回一个整数值) /// </summary> /// <param name="storedProcName">存储过程名</param> /// <param name="parameters">存储过程参数</param> /// <returns>SqlCommand 对象实例</returns> public static SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters) { SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters); command.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null)); return command; }
public User RetrieveByUserName(string userName) { var sql = @"select * from user where username= @username and disabled = 0;"; var parameters = new IDataParameter[] { new MySqlParameter("@username", userName) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.Rows.Count == 0 ? null : table.Rows[0].ToModel<User>(); }
public SelfStockGroup Retrieve(int stockGroupId) { var parameters = new IDataParameter[] { new MySqlParameter("@P_ID", stockGroupId) }; return this.DbRequest.RetrieveTable(this.ConnectionString, "P_STOCK_GROUP_GET", parameters).ToModel<SelfStockGroup>().FirstOrDefault(); }
public IList<SelfStockGroup> RetrieveAllGroupsByUserId(int userId) { var parameters = new IDataParameter[] { new MySqlParameter("@P_UserId", userId) }; return this.DbRequest.RetrieveTable(this.ConnectionString, "P_STOCK_GROUP_GET_BY_USER", parameters).ToModel<SelfStockGroup>(); }
public MarketStock Retrieve(string stockCode) { var sql = @"select * from marketstock where code = @code;"; var parameters = new IDataParameter[] { new MySqlParameter("@code", stockCode) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.Rows.Count == 0 ? null : table.Rows[0].ToModel<MarketStock>(); }
public IList<PersonalExchangeHistory> GetAllExchangeHistoriesByUser(int userId) { var sql = @"select * from personalexchangehistory where userid=@userid;"; var parameters = new IDataParameter[] { new MySqlParameter("@userid", userId) }; var table = this.DbRequest.RetrieveTable(this.ConnectionString, sql, parameters, CommandType.Text); return table.ToModel<PersonalExchangeHistory>(); }
public void SetProcParameter(IDataParameter dp, string name, object value, ParameterDirection direction) { dp.ParameterName = "@" + name; if (value == null) dp.Value = DBNull.Value; else dp.Value = value; dp.Direction = direction; }
public int Add(IDataParameter value) { Trace.WriteLine("DataSet Extension: Add(IDataParameter value)."); if (((DataSetDataParameter)value).ParameterName != null) return base.Add(value); else throw new ArgumentException("Parameter must be named."); }
/// <summary> /// 通过存储过程“Common_GetListBySortColumn”,得到分页后的数据 /// </summary> /// <param name="startRowIndexId">开始行索引</param> /// <param name="maxNumberRows">每页最大显示数量</param> /// <param name="PrimaryColumn">主键字段名</param> /// <param name="SortColumnDbType">排序字段的数据类型(如:int)</param> /// <param name="SortColumn">排序字段名,只能指定一个字段</param> /// <param name="StrColumn">返回列名</param> /// <param name="Sorts">排序方式(DESC,ASC)</param> /// <param name="Filter">查询条件(例如: Name = 'name' and id=1 )</param> /// <param name="TableName">查询表名,可以指定联合查询的SQL语句(例如: Comment LEFT JOIN Users ON Comment.UserName = Users.UserName)</param> /// <param name="Total">输出参数:查询总数</param> /// <returns></returns> public virtual IList <RemindItemEntity> GetListBySortColumn(int startRowIndexId, int maxNumberRows, string PrimaryColumn, string SortColumnDbType, string SortColumn, string StrColumn, string Sorts, string Filter, string TableName, out int Total) { IList <RemindItemEntity> list = new List <RemindItemEntity>(); if (string.IsNullOrEmpty(PrimaryColumn)) { PrimaryColumn = "RemindID"; } if (string.IsNullOrEmpty(SortColumnDbType)) { SortColumnDbType = "int"; } if (string.IsNullOrEmpty(SortColumn)) { SortColumn = "RemindID"; } if (string.IsNullOrEmpty(StrColumn)) { StrColumn = "*"; } if (string.IsNullOrEmpty(Sorts)) { Sorts = "DESC"; } if (string.IsNullOrEmpty(TableName)) { TableName = "RemindItem"; } string storedProcedureName = "Common_GetListBySortColumn"; SqlParameter parmStartRows = new SqlParameter("StartRows", startRowIndexId); SqlParameter parmPageSize = new SqlParameter("PageSize", maxNumberRows); SqlParameter parmPrimaryColumn = new SqlParameter("PrimaryColumn", PrimaryColumn); SqlParameter parmSortColumnDbType = new SqlParameter("SortColumnDbType", SortColumnDbType); SqlParameter parmSortColumn = new SqlParameter("SortColumn", SortColumn); SqlParameter parmStrColumn = new SqlParameter("StrColumn", StrColumn); SqlParameter parmSorts = new SqlParameter("Sorts", Sorts); SqlParameter parmTableName = new SqlParameter("TableName", TableName); SqlParameter parmFilter = new SqlParameter("Filter", Filter); SqlParameter parmTotal = new SqlParameter("Total", SqlDbType.Int); parmTotal.Direction = ParameterDirection.Output; IDataParameter[] parameterArray = new IDataParameter[10]; parameterArray[0] = parmStartRows; parameterArray[1] = parmPageSize; parameterArray[2] = parmPrimaryColumn; parameterArray[3] = parmSortColumnDbType; parameterArray[4] = parmSortColumn; parameterArray[5] = parmStrColumn; parameterArray[6] = parmSorts; parameterArray[7] = parmTableName; parameterArray[8] = parmFilter; parameterArray[9] = parmTotal; using (NullableDataReader reader = _DB.GetDataReaderByProc(storedProcedureName, parameterArray)) { while (reader.Read()) { list.Add(GetEntityFromrdr(reader)); } } Total = (int)parmTotal.Value; return(list); }
public override string GetNativeDbTypeName(IDataParameter para) { return(((NpgsqlParameter)para).NpgsqlDbType.ToString()); }
/// <summary> /// Retrieve the output parameter and map them on the result object. /// This routine is only use is you specified a ParameterMap and some output attribute /// or if you use a store procedure with output parameter... /// </summary> /// <param name="request"></param> /// <param name="session">The current session.</param> /// <param name="result">The result object.</param> /// <param name="command">The command sql.</param> private static void RetrieveOutputParameters(RequestScope request, ISession session, IDbCommand command, object result) { if (request.ParameterMap != null && request.ParameterMap.HasOutputParameter) { int count = request.ParameterMap.PropertiesList.Count; for (int i = 0; i < count; i++) { ParameterProperty mapping = request.ParameterMap.GetProperty(i); if (mapping.Direction == ParameterDirection.Output || mapping.Direction == ParameterDirection.InputOutput) { string parameterName = string.Empty; if (session.SessionFactory.DataSource.DbProvider.UseParameterPrefixInParameter == false) { parameterName = mapping.ColumnName; } else { parameterName = session.SessionFactory.DataSource.DbProvider.ParameterPrefix + mapping.ColumnName; } if (mapping.TypeHandler == null) // Find the TypeHandler { lock (mapping) { if (mapping.TypeHandler == null) { Type propertyType = ObjectProbe.GetMemberTypeForGetter(result, mapping.PropertyName); mapping.TypeHandler = request.DataExchangeFactory.TypeHandlerFactory.GetTypeHandler(propertyType); } } } // Fix IBATISNET-239 //"Normalize" System.DBNull parameters IDataParameter dataParameter = (IDataParameter)command.Parameters[parameterName]; object dbValue = dataParameter.Value; object value = null; bool wasNull = (dbValue == DBNull.Value); if (wasNull) { if (mapping.HasNullValue) { value = mapping.TypeHandler.ValueOf(mapping.GetAccessor.MemberType, mapping.NullValue); } else { value = mapping.TypeHandler.NullValue; } } else { value = mapping.TypeHandler.GetDataBaseValue(dataParameter.Value, result.GetType()); } request.IsRowDataFound = request.IsRowDataFound || (value != null); request.ParameterMap.SetOutputParameter(ref result, mapping, value); } } } }
private bool IsInputParamter(IDataParameter parameter) { //Due to quirk in DeriveParameters can only verify Input parameter as output parameters //are incorrectly listed as InputOutput return(parameter.Direction == ParameterDirection.Input); }
/// <summary> /// 获取当前数据库类型的参数数据类型名称 /// </summary> /// <param name="para"></param> /// <returns></returns> public abstract string GetNativeDbTypeName(IDataParameter para);
public static bool Update(Project project, ref string msg) { bool ret = false; string updateSql = "UPDATE HPMS_Project SET" + " PNCustomer = @pncustomer, Length = @length, AWG = @awg, Diff = @diff, Single = @single," + "Tdr = @tdr,DiffPair = @diffpair,NextPair = @nextpair,FextPair = @fextpair,ReportTempletePath = @reporttempletepath," + "RomFileMode = @romfilemode,RomFilePath = @romfilepath,RomWrite = @romwrite,SwitchFilePath = @switchfilepath,FreSpec = @frespec," + "FrePoints = @frepoints,Tdd11 =@tdd11,Tdd22 = @tdd22,ILD = @ild,Skew = @skew," + "Customer = @customer,FreSpecFilePath = @frespecfilepath, Speed = @speed,ProductTypeL = @producttypel,ProductTypeR = @producttyper," + "Power = @power, Description = @description,CalFilePath = @calfilepath,Keypoint = @keypoint,Srevert=@srevert,Trevert=@trevert,Report=@report where PN = @pn "; IDataParameter[] b = new IDataParameter[33]; b[0] = Gloabal.GDatabase.CreatePara("pn", project.Pn); b[1] = Gloabal.GDatabase.CreatePara("pncustomer", project.PnCustomer); b[2] = Gloabal.GDatabase.CreatePara("length", project.Length); b[3] = Gloabal.GDatabase.CreatePara("awg", project.Awg); b[4] = Gloabal.GDatabase.CreatePara("diff", Convert.List2Str(project.Diff)); b[5] = Gloabal.GDatabase.CreatePara("single", Convert.List2Str(project.Single)); b[6] = Gloabal.GDatabase.CreatePara("tdr", Convert.List2Str(project.Tdr)); b[7] = Gloabal.GDatabase.CreatePara("diffpair", Convert.List2Str(project.DiffPair)); b[8] = Gloabal.GDatabase.CreatePara("nextpair", Convert.List2Str(project.NextPair)); b[9] = Gloabal.GDatabase.CreatePara("fextpair", Convert.List2Str(project.FextPair)); b[10] = Gloabal.GDatabase.CreatePara("reporttempletepath", project.ReportTempletePath); b[11] = Gloabal.GDatabase.CreatePara("romfilemode", project.RomFileMode.ToString()); b[12] = Gloabal.GDatabase.CreatePara("romfilepath", project.RomFilePath); b[13] = Gloabal.GDatabase.CreatePara("romwrite", project.RomWrite); b[14] = Gloabal.GDatabase.CreatePara("switchfilepath", project.SwitchFilePath); b[15] = Gloabal.GDatabase.CreatePara("frespec", project.FreSpec); b[16] = Gloabal.GDatabase.CreatePara("frepoints", project.FrePoints); b[17] = Gloabal.GDatabase.CreatePara("tdd11", Serializer.Object2Json(project.Tdd11)); b[18] = Gloabal.GDatabase.CreatePara("tdd22", Serializer.Object2Json(project.Tdd22)); b[19] = Gloabal.GDatabase.CreatePara("ild", project.Ild.ToString()); b[20] = Gloabal.GDatabase.CreatePara("skew", project.Skew); b[21] = Gloabal.GDatabase.CreatePara("customer", project.Customer); b[22] = Gloabal.GDatabase.CreatePara("frespecfilepath", project.FreSpecFilePath); b[23] = Gloabal.GDatabase.CreatePara("speed", project.Speed); b[24] = Gloabal.GDatabase.CreatePara("producttypel", project.ProductTypeL); b[25] = Gloabal.GDatabase.CreatePara("producttyper", project.ProductTypeR); b[26] = Gloabal.GDatabase.CreatePara("power", project.Power); b[27] = Gloabal.GDatabase.CreatePara("description", project.Description); b[28] = Gloabal.GDatabase.CreatePara("calfilepath", project.CalFilePath); b[29] = Gloabal.GDatabase.CreatePara("keypoint", project.KeyPoint); b[30] = Gloabal.GDatabase.CreatePara("srevert", project.Srevert); b[31] = Gloabal.GDatabase.CreatePara("trevert", project.Trevert); b[32] = Gloabal.GDatabase.CreatePara("report", project.Report); int updateCount = Gloabal.GDatabase.ExecuteSql(updateSql, b); if (updateCount == 1) { ret = true; } return(ret); }
public override void Set(IDbCommand cmd, object value, int index) { IDataParameter par = (IDataParameter)cmd.Parameters[index]; par.Value = value != null?GetValue(value) : DBNull.Value; }
public override string GetNativeDbTypeName(IDataParameter para) { return(para.DbType.ToString()); }
DataParameterBase IProvider.GetDataParameter(IDataParameter parameter) { throw new NotImplementedException(); }
/// <summary> /// Sets a parameter on a IDbCommand /// </summary> /// <param name="dataParameter">the parameter</param> /// <param name="parameterValue">the parameter value</param> /// <param name="dbType">the dbType of the parameter</param> public override void SetParameter(IDataParameter dataParameter, object parameterValue, string dbType) { dataParameter.DbType = DbType.AnsiString; base.SetParameter(dataParameter, parameterValue, dbType); }
/// <summary> /// Handle any provider-specific issues with BLOBs here by "washing" the IDataParameter and returning a new one that is set up appropriately for the provider. /// </summary> /// <param name="connection">The IDbConnection to use in cleansing the parameter</param> /// <param name="p">The parameter before cleansing</param> /// <returns>The parameter after it's been cleansed.</returns> protected override IDataParameter GetBlobParameter(IDbConnection connection, IDataParameter p) { // do nothing special for BLOBs...as far as we know now. return(p); }
protected static MethodParameter MethodParameterFromDataParameter(IDataParameter parameter) => new MethodParameter { Name = parameter.ParameterName.Replace("@", "") };
/// <summary> /// Clones a parameter so that it can be used with another command. /// </summary> /// <param name="command">The command to use.</param> /// <param name="parameter">The parameter to clone.</param> /// <returns>The clone.</returns> public override IDataParameter CloneParameter(IDbCommand command, IDataParameter parameter) { NpgsqlParameter p = (NpgsqlParameter)parameter; return((IDataParameter)p.Clone()); }
/// <summary> /// Get the flights details for a given flight from the database /// </summary> /// <parameter name="FlightId"></parameter> /// <returns>Returns a flight for a given flight id from the database</returns> public Flight GetFlight(int FlightId) { Flight flight = null; IDbConnection conn = null; IDbConnection conn2 = null; try { conn = this.GetConnection(); conn.Open(); IDbCommand cmd1 = conn.CreateCommand(); cmd1.CommandText = "GetFlightsID"; cmd1.CommandType = CommandType.StoredProcedure; IDataParameter p1 = cmd1.CreateParameter(); p1.ParameterName = "@FlightID"; p1.Value = FlightId; cmd1.Parameters.Add(p1); conn2 = this.GetConnection(); conn2.Open(); IDbCommand cmd2 = conn2.CreateCommand(); cmd2.CommandText = "GetFlightClasses"; cmd2.CommandType = CommandType.StoredProcedure; IDataParameter p = cmd2.CreateParameter(); p.ParameterName = "@FlightId"; cmd2.Parameters.Add(p); using (IDataReader Reader = cmd1.ExecuteReader()) { while (Reader.Read()) { flight = new Flight(); flight.ID = long.Parse(Reader["FlightId"].ToString()); flight.Name = Reader["FlightName"].ToString(); flight.AirlineForFlight = new Airline(); flight.AirlineForFlight.Id = int.Parse(Reader["AirlineId"].ToString()); flight.AirlineForFlight.Name = Reader["AirlineName"].ToString(); flight.AirlineForFlight.Code = Reader["AirlineCode"].ToString(); p.Value = flight.ID; using (IDataReader reader2 = cmd2.ExecuteReader()) { try { while (reader2.Read()) { FlightClass fClass = null; int classid = int.Parse(reader2["ClassId"].ToString()); fClass.ClassInfo = (TravelClass)classid; fClass.NoOfSeats = int.Parse(reader2["NoOfSeats"].ToString()); flight.AddClass(fClass); } } catch (Exception ex) { throw ex; } } } } } catch (Common.ConnectToDatabaseException) { throw new FlightDAOException("Unable to get the flight details"); } catch (Exception) { throw new FlightDAOException("Unable to get the flight details"); } finally { if (conn != null && conn.State == ConnectionState.Open) { conn.Close(); } if (conn2 != null && conn2.State == ConnectionState.Open) { conn2.Close(); } } return(flight); }
public void AddParameter(IDataParameter param) { cmd.Parameters.Add(param); }
protected static List <IBCommand> GetIBFormDataInner(List <IDataControl> IBControls, CommonDB DB) { List <IBCommand> IBCommands = new List <IBCommand>(); //获取表单中的CRUD 语句。 while (IBControls.Count > 0) { string strTableName = ""; string strInsert = ""; string strFields = ""; string strValues = ""; string strUpdate = ""; string strCondition = ""; int nullCount = 0; int ID = -1; int paraIndex = 0; List <IDataParameter> paraList = new List <IDataParameter>(); for (int i = 0; i < IBControls.Count; i++)// object objCtr in IBControls) { object objCtr = IBControls[i]; if (objCtr != null) { IDataControl ibCtr = objCtr as IDataControl; //只有非只读的控件才可以更新数据到数据库 if (ibCtr != null) { if (strTableName == "" && ibCtr.LinkObject != "") { strTableName = ibCtr.LinkObject; strInsert = "INSERT INTO [" + strTableName + "]("; strUpdate = "UPDATE [" + strTableName + "] SET "; } //找到当前处理的表,只有非只读的字段可以更新 if (strTableName == ibCtr.LinkObject && ibCtr.LinkProperty != "") { #region 原来获取值得方法 //string cValue=ibCtr.GetValue ().ToString ().Replace ("'","''"); ////dth,2008.4.11 处理字符串类型为空的情况 ////防止SQL注入式攻击 ////不论是否为空都进行字符串类型测试 //if(ibCtr.SysTypeCode==System.TypeCode.String || ibCtr.SysTypeCode==System.TypeCode.Empty) //{ // cValue="'"+ cValue +"'"; //} //else //{ // if(cValue!="") // { // if(ibCtr.SysTypeCode==System.TypeCode.Boolean ) // cValue=(cValue.ToUpper ()=="TRUE"?"1":"0"); // else if(ibCtr.SysTypeCode==System.TypeCode.DateTime ) // { // if (DB.CurrentDBMSType == DBMSType.SQLite) // cValue = "'" + DateTime.Parse(cValue).ToString("s") + "'"; // else // cValue = "'" + cValue + "'";//SQL SERVER 日期格式 // } // else if(ibCtr.SysTypeCode==System.TypeCode.DBNull ) // { // cValue="NULL"; // } // else if(ibCtr.SysTypeCode==System.TypeCode.Object ) // { // //Object 标记不做任何处理,例如可以使用最大值加一获取主键值 // } // else if(!(ibCtr.SysTypeCode==System.TypeCode.String || ibCtr.SysTypeCode==System.TypeCode.Empty)) // { // //如果不是字符串那么试图进行数字转换 // cValue=Convert.ToDouble (cValue).ToString (); // } // } //} #endregion string cValue = string.Empty; object ctlValue = ibCtr.GetValue(); //非只读的数据才更新 if (ctlValue != DBNull.Value) { cValue = DB.GetParameterChar + "P" + paraIndex++; IDataParameter para = DB.GetParameter(cValue, ctlValue); if (ibCtr.SysTypeCode == System.TypeCode.String || ibCtr.SysTypeCode == System.TypeCode.Empty) { if (ibCtr is IDataTextBox) { int maxStringLength = ((IDataTextBox)ibCtr).MaxLength; if (maxStringLength > 0) { ((IDbDataParameter)para).Size = maxStringLength; } } } paraList.Add(para); //2010.1.25 取消 ibCtr.PrimaryKey 不能更新的限制,例如可以让GUID主键列可以更新 //如果是自增列,设置该列的控件属性为 只读属性即可。 if (!ibCtr.ReadOnly) { strFields += "[" + ibCtr.LinkProperty + "],"; strValues += cValue + ","; strUpdate += "[" + ibCtr.LinkProperty + "] = " + cValue + ","; } if (ibCtr.PrimaryKey) //只要是主键就作为更新的条件 { strCondition += " And [" + ibCtr.LinkProperty + "] = " + cValue; if (ibCtr.SysTypeCode == System.TypeCode.Int32) { ID = int.Parse(ctlValue.ToString()); } else { ID = -2;//主键可能是非数字型 } } } } IBControls[i] = null; } } else { nullCount++; } }//end for if (nullCount >= IBControls.Count - 1) { break; } strInsert += strFields.TrimEnd(',') + ") VALUES (" + strValues.TrimEnd(',') + ")"; strUpdate = strUpdate.TrimEnd(',') + " WHERE 1=1 " + strCondition; IBCommand ibcmd = new IBCommand(strTableName); ibcmd.InsertCommand = strInsert; ibcmd.UpdateCommand = strUpdate; //if( ID>0) ibcmd.InsertedID = ID; ibcmd.Parameters = paraList.ToArray(); IBCommands.Add(ibcmd); }//end while return(IBCommands); }
/// <summary> /// Sets data type to command parameter <paramref name="param"/>. /// </summary> /// <param name="param">Parameter for <see cref="IDbCommand"/> commands.</param> public abstract void SetParameterDbType(IDataParameter param);
/// <summary> /// Sets a parameter on a IDbCommand /// </summary> /// <param name="dataParameter">the parameter</param> /// <param name="parameterValue">the parameter value</param> /// <param name="dbType">the dbType of the parameter</param> public override void SetParameter(IDataParameter dataParameter, object parameterValue, string dbType) { dataParameter.Value = DBNull.Value; }
public DataParameterBase GetDataParameter(IDataParameter parameter) { var oleDbParameter = (OleDbParameter)parameter; return(new DataParameterImp(oleDbParameter)); }
private static void HandleDetailsUpdate(HttpRequest Request, HttpResponse Response, Guid userId) { BinaryReader r = new BinaryReader(Request.InputStream); int responseVersion = 0; int responseCode = -1; Encoding e = Encoding.Unicode; try { int clientVersion = r.ReadInt32(); responseVersion = clientVersion; if (userId == Guid.Empty) { responseCode = -2; return; } int itemcount = r.ReadInt32(); using (Db db = new Db()) { db.CommandText = "UPDATE tPhoto SET name=@title, comment=@text WHERE id=@photoId"; IDataParameter pid = db.AddParameter("@photoId", Guid.Empty); IDataParameter ptitle = db.AddParameter("@title", string.Empty); IDataParameter ptext = db.AddParameter("@text", string.Empty); for (int i = 0; i < itemcount; i++) { Guid photoId = new Guid(r.ReadBytes(16)); int len; byte[] raw; len = r.ReadInt32(); raw = r.ReadBytes(len); string title = e.GetString(raw, 0, raw.Length - 2); len = r.ReadInt32(); raw = r.ReadBytes(len); string text = e.GetString(raw, 0, raw.Length - 2); bool ok; try { Database.EnforcePhotoPermission(userId, photoId, Permission.Change); pid.Value = photoId; ptitle.Value = title; ptext.Value = text; ok = db.ExecuteNonQuery(0) == 1; } catch (System.Data.SqlClient.SqlException exc) { string debug = exc.ToString(); throw; } catch (Error_AccessDenied) { ok = false; Log.LogSecurity(2, "Denied access to edit photo details with client control. userId:{0}, photoId:{1}, title{2}, text:{3}.", userId, photoId, title, text); } } } responseCode = 0; Log.LogStatistics(2, "Updated details for {0} photos.", itemcount); } catch { responseCode = -1; throw; } finally { BinaryWriter writer = new BinaryWriter(Response.OutputStream); writer.Write(responseVersion); writer.Write(responseCode); writer.Flush(); } }
/// <summary> /// Sets a parameter on a IDbCommand /// </summary> /// <param name="dataParameter">the parameter</param> /// <param name="parameterValue">the parameter value</param> /// <param name="dbType">the dbType of the parameter</param> public override void SetParameter(IDataParameter dataParameter, object parameterValue, string dbType) { dataParameter.Value = Convert.ChangeType(parameterValue, Enum.GetUnderlyingType(parameterValue.GetType())); }
protected void SaveChoose() { string strId = Request.QueryString.Get("id"); string strEndId = ViewState["ChooseId"].ToString(); if (strEndId == "") { strEndId = "0"; } else { RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam random = objBll.GetExam(int.Parse(strId)); if (random.RandomExamModularTypeID > 1) { OracleAccess db = new OracleAccess(); string strSql = "select * from Random_Exam_Modular_Type where Random_Exam_Modular_Type_ID=" + random.RandomExamModularTypeID; DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; strSql = "select * from Random_Exam_Modular_Type where Level_Num=" + (Convert.ToInt32(dr["Level_NUM"]) - 1); DataRow drPre = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; strSql = " select a.* " + "from Random_Exam_Result a " + " inner join Random_Exam b on a.Random_Exam_ID=b.Random_Exam_ID " + " left join Random_Exam_Modular_Type c on b.Random_Exam_Modular_Type_ID=c.Random_Exam_Modular_Type_ID " + " where c.Level_Num=" + (Convert.ToInt32(dr["Level_NUM"]) - 1); DataSet ds = db.RunSqlDataSet(strSql); strSql = "select * from Employee where Employee_ID in (" + strEndId + ")"; DataSet dsEmp = db.RunSqlDataSet(strSql); string[] str = strEndId.Split(','); string strErrorMessage = string.Empty; for (int i = 0; i < str.Length; i++) { DataRow[] drs = ds.Tables[0].Select("EXAMINEE_ID=" + str[i]); if (drs.Length == 0) { DataRow[] drsEmp = dsEmp.Tables[0].Select("Employee_ID=" + str[i]); strErrorMessage = "所选考生【" + drsEmp[0]["Employee_Name"] + "】未能通过【" + drPre["Random_Exam_Modular_Type_Name"] + "】考试,不能参加【" + dr["Random_Exam_Modular_Type_Name"] + "】考试!"; break; } } if (!string.IsNullOrEmpty(strErrorMessage)) { SessionSet.PageMessage = strErrorMessage; return; } } } if (ViewState["UpdateMode"] != null && ViewState["UpdateMode"].ToString() == "0") { RandomExamArrangeBLL examArrangeBLL = new RandomExamArrangeBLL(); IList <RandomExamArrange> objList = examArrangeBLL.GetRandomExamArranges(int.Parse(strId)); if (objList.Count == 0) { RandomExamArrange examArrange = new RandomExamArrange(); examArrange.RandomExamId = int.Parse(strId); examArrange.UserIds = strEndId; examArrange.Memo = ""; if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType")) && !PrjPub.IsServerCenter) { examArrangeBLL.AddRandomExamArrangeToServer(examArrange); } else { examArrangeBLL.AddRandomExamArrange(examArrange); } ViewState["UpdateMode"] = 1; if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType"))) { Response.Write("<script>alert('添加成功!');window.opener.form1.Refresh.value='true';window.opener.form1.submit();window.close();</script>"); } else { string strSql = ""; OracleAccess db = new OracleAccess(); strSql = "update Random_Exam set Is_All_Arrange = 0 where Random_Exam_ID=" + strId; db.ExecuteNonQuery(strSql); SessionSet.PageMessage = "添加成功!"; return; } } else { ViewState["UpdateMode"] = "1"; } } if (ViewState["UpdateMode"] != null && ViewState["UpdateMode"].ToString() == "1") { RandomExamArrangeBLL examArrangeBLL = new RandomExamArrangeBLL(); IList <RandomExamArrange> objList = examArrangeBLL.GetRandomExamArranges(int.Parse(strId)); string strNew = objList[0].UserIds; string[] str = strEndId.Split(','); for (int i = 0; i < str.Length; i++) { if (("," + strNew + ",").IndexOf("," + str[i] + ",") < 0) { strNew += strNew == string.Empty ? str[i] : "," + str[i]; } } if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType"))) { //examArrangeBLL.UpdateRandomExamArrangeToServer(int.Parse(strId), strAdd); string strAddIds = string.Empty; for (int i = 0; i < str.Length; i++) { if (("," + objList[0].UserIds + ",").IndexOf("," + str[i] + ",") < 0) { strAddIds += strAddIds == string.Empty ? str[i] : "," + str[i]; } } OracleAccess db = new OracleAccess(); OracleAccess dbCenter = new OracleAccess(System.Configuration.ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString); XmlDocument doc = new XmlDocument(); //Request.PhysicalApplicationPath取得config文件路径 doc.Load(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "web.config")); XmlNode node = doc.SelectSingleNode("configuration/dataConfiguration/@defaultDatabase"); string value = node.Value; if (value == "Oracle") { OracleParameter para1 = new OracleParameter("p_User_Ids", OracleType.Clob); OracleParameter para2 = new OracleParameter("p_random_Exam_ID", OracleType.Number); para2.Value = int.Parse(strId); IDataParameter[] paras = new IDataParameter[] { para1, para2 }; examArrangeBLL.RunUpdateProcedure(true, "USP_random_Exam_Arrange_U", paras, System.Text.Encoding.Unicode.GetBytes(strEndId)); } string strSql = "select a.* from Random_Exam_Arrange_Detail a " + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID" + " inner join Computer_Server c on c.Computer_server_ID=b.Computer_Server_ID" + " where c.Computer_Server_No='" + PrjPub.ServerNo + "' " + " and Random_Exam_ID=" + strId; DataSet ds = db.RunSqlDataSet(strSql); strSql = "update Random_Exam_Arrange_Detail " + "set User_ids = User_ids || '," + strAddIds + "' " + "where Random_Exam_Arrange_Detail_ID =" + ds.Tables[0].Rows[0]["Random_Exam_Arrange_Detail_ID"]; dbCenter.ExecuteNonQuery(strSql); if (!PrjPub.IsServerCenter) { examArrangeBLL.RefreshRandomExamArrange(); } } else { examArrangeBLL.UpdateRandomExamArrange(int.Parse(strId), strNew); } if (!string.IsNullOrEmpty(Request.QueryString.Get("selectType"))) { //SessionSet.PageMessage = "添加成功!"; Response.Write("<script>alert('添加成功!');window.opener.form1.Refresh.value='true';window.opener.form1.submit();window.close();</script>"); } else { string strSql = ""; OracleAccess db = new OracleAccess(); strSql = "update Random_Exam set Is_All_Arrange = 0 where Random_Exam_ID=" + strId; db.ExecuteNonQuery(strSql); SessionSet.PageMessage = "添加成功!"; return; } } }
DataParameterBase IProvider.GetDataParameter(IDataParameter parameter) { var sqlParameter = (SqlParameter)parameter; return(new SqlDataParameter(sqlParameter)); }
public static bool Add(Project project, ref string msg) { bool ret = false; if (Find(project.Pn).Count > 0) { msg = "相同料号已经存在"; return(false); } string insertSql = "INSERT INTO HPMS_Project (" + "PN, PNCustomer, Length, AWG, Diff, " + "Single, Tdr, DiffPair, NextPair, FextPair, " + "ReportTempletePath, RomFileMode, RomFilePath, RomWrite, SwitchFilePath, " + "FreSpec, FrePoints, Tdd11, Tdd22, ILD, " + "Skew, Customer,FreSpecFilePath, Speed, ProductTypeL, " + "ProductTypeR, Power, Description,CalFilePath,Keypoint,Srevert,Trevert,Report) VALUES (" + "@pn,@pncustomer,@length,@awg,@diff," + "@single,@tdr,@diffpair,@nextpair,@fextpair," + "@reporttempletepath,@romfilemode,@romfilepath,@romwrite,@switchfilepath," + "@frespec,@frepoints,@tdd11,@tdd22,@ild," + "@skew,@customer,@frespecfilepath,@speed,@producttypel," + "@producttyper,@power,@description,@calfilepath,@keypoint,@srevert,@trevert,@report) "; IDataParameter[] b = new IDataParameter[33]; b[0] = Gloabal.GDatabase.CreatePara("pn", project.Pn); b[1] = Gloabal.GDatabase.CreatePara("pncustomer", project.PnCustomer); b[2] = Gloabal.GDatabase.CreatePara("length", project.Length); b[3] = Gloabal.GDatabase.CreatePara("awg", project.Awg); b[4] = Gloabal.GDatabase.CreatePara("diff", Convert.List2Str(project.Diff)); b[5] = Gloabal.GDatabase.CreatePara("single", Convert.List2Str(project.Single)); b[6] = Gloabal.GDatabase.CreatePara("tdr", Convert.List2Str(project.Tdr)); b[7] = Gloabal.GDatabase.CreatePara("diffpair", Convert.List2Str(project.DiffPair)); b[8] = Gloabal.GDatabase.CreatePara("nextpair", Convert.List2Str(project.NextPair)); b[9] = Gloabal.GDatabase.CreatePara("fextpair", Convert.List2Str(project.FextPair)); b[10] = Gloabal.GDatabase.CreatePara("reporttempletepath", project.ReportTempletePath); b[11] = Gloabal.GDatabase.CreatePara("romfilemode", project.RomFileMode.ToString()); b[12] = Gloabal.GDatabase.CreatePara("romfilepath", project.RomFilePath); b[13] = Gloabal.GDatabase.CreatePara("romwrite", project.RomWrite); b[14] = Gloabal.GDatabase.CreatePara("switchfilepath", project.SwitchFilePath); b[15] = Gloabal.GDatabase.CreatePara("frespec", project.FreSpec); b[16] = Gloabal.GDatabase.CreatePara("frepoints", project.FrePoints); b[17] = Gloabal.GDatabase.CreatePara("tdd11", Serializer.Object2Json(project.Tdd11)); b[18] = Gloabal.GDatabase.CreatePara("tdd22", Serializer.Object2Json(project.Tdd22)); b[19] = Gloabal.GDatabase.CreatePara("ild", project.Ild.ToString()); b[20] = Gloabal.GDatabase.CreatePara("skew", project.Skew); b[21] = Gloabal.GDatabase.CreatePara("customer", project.Customer); b[22] = Gloabal.GDatabase.CreatePara("frespecfilepath", project.FreSpecFilePath); b[23] = Gloabal.GDatabase.CreatePara("speed", project.Speed); b[24] = Gloabal.GDatabase.CreatePara("producttypel", project.ProductTypeL); b[25] = Gloabal.GDatabase.CreatePara("producttyper", project.ProductTypeR); b[26] = Gloabal.GDatabase.CreatePara("power", project.Power); b[27] = Gloabal.GDatabase.CreatePara("description", project.Description); b[28] = Gloabal.GDatabase.CreatePara("calfilepath", project.CalFilePath); b[29] = Gloabal.GDatabase.CreatePara("keypoint", project.KeyPoint); b[30] = Gloabal.GDatabase.CreatePara("srevert", project.Srevert); b[31] = Gloabal.GDatabase.CreatePara("trevert", project.Trevert); b[32] = Gloabal.GDatabase.CreatePara("report", project.Report); int insertCount = Gloabal.GDatabase.ExecuteSql(insertSql, b); if (insertCount == 1) { ret = true; } else { msg = "添加新料号失败"; } return(ret); }
/// <summary> /// Default Constructor /// </summary> /// <param name="dataParameter"></param> public ParameterSetterImpl(IDataParameter dataParameter) { _dataParameter = dataParameter; }
protected virtual int Update(DataRow [] dataRows, DataTableMapping tableMapping) { int updateCount = 0; foreach (DataRow row in dataRows) { StatementType statementType = StatementType.Update; IDbCommand command = null; string commandName = String.Empty; switch (row.RowState) { case DataRowState.Added: statementType = StatementType.Insert; command = ((IDbDataAdapter)this).InsertCommand; commandName = "Insert"; break; case DataRowState.Deleted: statementType = StatementType.Delete; command = ((IDbDataAdapter)this).DeleteCommand; commandName = "Delete"; break; case DataRowState.Modified: statementType = StatementType.Update; command = ((IDbDataAdapter)this).UpdateCommand; commandName = "Update"; break; case DataRowState.Unchanged: case DataRowState.Detached: continue; } RowUpdatingEventArgs argsUpdating = CreateRowUpdatingEvent(row, command, statementType, tableMapping); row.RowError = null; OnRowUpdating(argsUpdating); switch (argsUpdating.Status) { case UpdateStatus.Continue: //continue in update operation break; case UpdateStatus.ErrorsOccurred: if (argsUpdating.Errors == null) { argsUpdating.Errors = ExceptionHelper.RowUpdatedError(); } row.RowError += argsUpdating.Errors.Message; if (!ContinueUpdateOnError) { throw argsUpdating.Errors; } continue; case UpdateStatus.SkipAllRemainingRows: return(updateCount); case UpdateStatus.SkipCurrentRow: updateCount++; continue; default: throw ExceptionHelper.InvalidUpdateStatus(argsUpdating.Status); } command = argsUpdating.Command; try { if (command != null) { DataColumnMappingCollection columnMappings = tableMapping.ColumnMappings; #if ONLY_1_1 IDataParameter nullCheckParam = null; #endif foreach (IDataParameter parameter in command.Parameters) { if ((parameter.Direction & ParameterDirection.Input) == 0) { continue; } DataRowVersion rowVersion = parameter.SourceVersion; // Parameter version is ignored for non-update commands if (statementType == StatementType.Delete) { rowVersion = DataRowVersion.Original; } string dsColumnName = parameter.SourceColumn; #if NET_2_0 if (columnMappings.Contains(dsColumnName)) { dsColumnName = columnMappings [dsColumnName].DataSetColumn; parameter.Value = row [dsColumnName, rowVersion]; } else { parameter.Value = null; } DbParameter nullCheckParam = parameter as DbParameter; #else if (columnMappings.Contains(dsColumnName)) { dsColumnName = columnMappings [dsColumnName].DataSetColumn; } if (dsColumnName == null || dsColumnName.Length == 0) { nullCheckParam = parameter; continue; } parameter.Value = row [dsColumnName, rowVersion]; #endif #if NET_2_0 if (nullCheckParam != null && nullCheckParam.SourceColumnNullMapping) { #else if (nullCheckParam != null) { #endif if (parameter.Value != null && parameter.Value != DBNull.Value) { nullCheckParam.Value = 0; } else { nullCheckParam.Value = 1; } nullCheckParam = null; } } } } catch (Exception e) { argsUpdating.Errors = e; argsUpdating.Status = UpdateStatus.ErrorsOccurred; } IDataReader reader = null; try { if (command == null) { throw ExceptionHelper.UpdateRequiresCommand(commandName); } CommandBehavior commandBehavior = CommandBehavior.Default; if (command.Connection.State == ConnectionState.Closed) { command.Connection.Open(); commandBehavior |= CommandBehavior.CloseConnection; } // use ExecuteReader because we want to use the commandbehavior parameter. // so the connection will be closed if needed. reader = command.ExecuteReader(commandBehavior); // update the current row, if the update command returns any resultset // ignore other than the first record. DataColumnMappingCollection columnMappings = tableMapping.ColumnMappings; if (command.UpdatedRowSource == UpdateRowSource.Both || command.UpdatedRowSource == UpdateRowSource.FirstReturnedRecord) { if (reader.Read()) { DataTable retSchema = reader.GetSchemaTable(); foreach (DataRow dr in retSchema.Rows) { string columnName = dr ["ColumnName"].ToString(); string dstColumnName = columnName; if (columnMappings != null && columnMappings.Contains(columnName)) { dstColumnName = columnMappings [dstColumnName].DataSetColumn; } DataColumn dstColumn = row.Table.Columns [dstColumnName]; if (dstColumn == null || (dstColumn.Expression != null && dstColumn.Expression.Length > 0)) { continue; } // info from : http://www.error-bank.com/microsoft.public.dotnet.framework.windowsforms.databinding/ // [email protected]_Thread.aspx // disable readonly for non-expression columns. bool readOnlyState = dstColumn.ReadOnly; dstColumn.ReadOnly = false; try { row [dstColumnName] = reader [columnName]; } finally { dstColumn.ReadOnly = readOnlyState; } } } } reader.Close(); int tmp = reader.RecordsAffected; // records affected is valid only after closing reader // if the execute does not effect any rows we throw an exception. if (tmp == 0) { throw new DBConcurrencyException("Concurrency violation: the " + commandName + "Command affected 0 records.", null, new DataRow [] { row }); } updateCount += tmp; if (command.UpdatedRowSource == UpdateRowSource.Both || command.UpdatedRowSource == UpdateRowSource.OutputParameters) { // Update output parameters to row values foreach (IDataParameter parameter in command.Parameters) { if (parameter.Direction != ParameterDirection.InputOutput && parameter.Direction != ParameterDirection.Output && parameter.Direction != ParameterDirection.ReturnValue) { continue; } string dsColumnName = parameter.SourceColumn; if (columnMappings != null && columnMappings.Contains(parameter.SourceColumn)) { dsColumnName = columnMappings [parameter.SourceColumn].DataSetColumn; } DataColumn dstColumn = row.Table.Columns [dsColumnName]; if (dstColumn == null || (dstColumn.Expression != null && dstColumn.Expression.Length > 0)) { continue; } bool readOnlyState = dstColumn.ReadOnly; dstColumn.ReadOnly = false; try { row [dsColumnName] = parameter.Value; } finally { dstColumn.ReadOnly = readOnlyState; } } } RowUpdatedEventArgs updatedArgs = CreateRowUpdatedEvent(row, command, statementType, tableMapping); OnRowUpdated(updatedArgs); switch (updatedArgs.Status) { case UpdateStatus.Continue: break; case UpdateStatus.ErrorsOccurred: if (updatedArgs.Errors == null) { updatedArgs.Errors = ExceptionHelper.RowUpdatedError(); } row.RowError += updatedArgs.Errors.Message; if (!ContinueUpdateOnError) { throw updatedArgs.Errors; } break; case UpdateStatus.SkipCurrentRow: continue; case UpdateStatus.SkipAllRemainingRows: return(updateCount); } #if NET_2_0 if (!AcceptChangesDuringUpdate) { continue; } #endif row.AcceptChanges(); } catch (Exception e) { row.RowError = e.Message; if (!ContinueUpdateOnError) { throw e; } } finally { if (reader != null && !reader.IsClosed) { reader.Close(); } } } return(updateCount); }
private CommandStruct GenerateCommand <T>(DbBaseProvider dbProvider, T data, SchemaTable schemaTable, EntityPropertyGetFunc <T> getFunc, EnttiyPostColumnFunc <T> postColumnFunc) where T : ISqlEntity { CommandStruct command; if (!(schemaTable.StorageType.HasFlag(StorageType.ReadOnlyDB) || schemaTable.StorageType.HasFlag(StorageType.ReadWriteDB) || schemaTable.StorageType.HasFlag(StorageType.WriteOnlyDB)) || (string.IsNullOrEmpty(schemaTable.ConnectKey) && string.IsNullOrEmpty(schemaTable.ConnectionString))) { return(null); } if (getFunc == null) { getFunc = GetPropertyValue; } IList <string> columns = postColumnFunc != null ? postColumnFunc(data, schemaTable, _isChange) : schemaTable.GetColumnNames(); if (columns == null || columns.Count == 0) { TraceLog.WriteError("Class:{0} is not change column.", data.GetType().FullName); return(null); } string tableName = schemaTable.GetTableName(data.GetCreateTime()); if (data.IsDelete) { command = dbProvider.CreateCommandStruct(tableName, CommandMode.Delete); } else if (schemaTable.AccessLevel == AccessLevel.WriteOnly) { command = dbProvider.CreateCommandStruct(tableName, CommandMode.Insert); } else { command = dbProvider.CreateCommandStruct(tableName, CommandMode.ModifyInsert); } //StringBuilder changeLog = new StringBuilder(); //changeLog.AppendFormat("\"Keys\":\"{0}\"", data.GetKeyCode()); //处理列 foreach (string columnName in columns) { if (columnName.IsEmpty()) { continue; } try { SchemaColumn schemaColumn; if (schemaTable.Columns.TryGetValue(columnName, out schemaColumn)) { if (schemaColumn.Disable || schemaColumn.IsIdentity) { continue; } object value = getFunc(data, schemaColumn); IDataParameter parameter = CreateParameter(dbProvider, columnName, schemaColumn.DbType, value); command.AddParameter(parameter); } } catch (Exception ex) { throw new Exception(string.Format("get {0} column val error.", columnName), ex); } } //处理条件 string[] keyList = schemaTable.Keys; if (keyList.Length == 0) { throw new ArgumentNullException(string.Format("Table:{0} key is empty.", schemaTable.EntityName)); } string condition = string.Empty; command.Filter = dbProvider.CreateCommandFilter(); foreach (string columnName in keyList) { try { SchemaColumn schemaColumn; if (schemaTable.Columns.TryGetValue(columnName, out schemaColumn)) { string keyName = columnName; string paramName = "F_" + columnName; if (condition.Length > 0) { condition += " AND "; } condition += dbProvider.FormatFilterParam(schemaColumn.Name, "", paramName); object value = getFunc(data, schemaColumn); IDataParameter parameter = CreateParameter(dbProvider, paramName, schemaColumn.DbType, value); command.Filter.AddParam(parameter); //主键且自增列更新时,MSSQL与MySql处理不同,MySql需要有主键列 command.AddKey(CreateParameter(dbProvider, keyName, schemaColumn.DbType, value), schemaColumn.IsIdentity); } } catch (Exception ex) { throw new Exception(string.Format("get {0} column val error.", columnName), ex); } } command.Filter.Condition = condition; command.Parser(); return(command); }
/// <summary> /// add parameter without datatype /// </summary> /// <param name="name"></param> /// <param name="value"></param> /// <param name="direction"></param> /// <param name="size"></param> public void AddParameter(string name, object value, ParameterDirection direction = ParameterDirection.Input, int size = 0) { IDataParameter dataparameter = CreateParameter(name, value, direction, size); parameterList.Add(dataparameter); }
public void NullSafeSet(IDbCommand cmd, object value, int index) { IDataParameter parameter = (IDataParameter)cmd.Parameters[index]; parameter.Value = value; }
/// <summary> /// Update the existing flight details for a given flight id for the database /// </summary> /// <parameter name="_flight"></parameter> /// <returns>Returns the status of the update</returns> public bool UpdateFlight(Flight _flight) { IDbConnection conn1 = null; IDbConnection conn2 = null; bool isUpdated = false; try { conn1 = this.GetConnection(); conn1.Open(); IDbCommand cmd = conn1.CreateCommand(); cmd.CommandText = "select count(*) from flights where FlightName = '" + _flight.Name + "' and AirlineId = " + _flight.AirlineForFlight.Id; cmd.CommandType = CommandType.Text; conn2 = this.GetConnection(); IDbCommand cmd2 = conn2.CreateCommand(); cmd2.CommandText = "UpdateFlight"; cmd2.CommandType = CommandType.StoredProcedure; IDataParameter p1 = cmd2.CreateParameter(); p1.ParameterName = "@flightid"; p1.Value = _flight.ID; cmd2.Parameters.Add(p1); IDataParameter p2 = cmd2.CreateParameter(); p2.ParameterName = "@flightname"; p2.Value = _flight.Name; cmd2.Parameters.Add(p2); IDataParameter p3 = cmd2.CreateParameter(); p3.ParameterName = "@airline"; cmd2.Parameters.Add(p3); using (IDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { if (int.Parse(reader[0].ToString()) > 0) { isUpdated = false; } else { cmd2.ExecuteNonQuery(); isUpdated = true; } } } } catch (Common.ConnectToDatabaseException) { throw new FlightDAOException("Unable to update flight"); } catch (Exception) { throw new FlightDAOException("Unable to update flight"); } finally { if (conn1 != null && conn1.State == ConnectionState.Open) { conn1.Close(); } if (conn2 != null && conn2.State == ConnectionState.Open) { conn2.Close(); } } return(isUpdated); }