关闭顶部展开顶部

在ASP.NET程序中创建唯一序号_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!
缂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堫嚉濞差亝鏅濋柛灞炬皑閸旂數绱撴担鎻掍壕闂佺浜顤獵MS闂傚倷娴囧畷鐢稿窗閹扮増鍋¢柕澶堝剻濞戞ǚ鏀介悗锝冨妷閸嬫捇宕掗悙鏌ュ敹闂佸搫娲ㄩ崑鐐烘倵椤掆偓閳规垿鎮欓崣澶樻!闂佹悶鍔庨崰鏍ь嚕婵犳碍鏅搁柨鐕傛嫹濠电姷鏁搁崑鐐哄垂鐠轰警娼栭悷娆忓閻濆爼鏌涢埄鍐槈闁绘挻锕㈤弻鈥愁吋鎼粹€崇闂佹娊鏀辩敮锟犲蓟閵娾晜鍋嗛柛灞剧☉椤忥拷 缂傚倸鍊搁崐椋庣矆娓氣偓钘濋梺顒€绉寸粣妤呮煙闁箑澧鹃柤鏉挎健閺屾盯濡烽鐓庮潻缂備讲鍋撳鑸靛姈閻撳啴鏌曟径鍫濆闁绘繍浜弻锝呪攽閹炬潙顏� 闂傚倸鍊搁崐椋庢閿熺姴纾婚柛鏇ㄥ瀬閸ャ劍缍囬柍鍝勫暟椤︻垱绻濋姀锝嗙【闁哄牜鍓熷畷妤€饪伴崼鐔哄幐闂佹悶鍎崝宥夋儍閹达附鈷掑璺猴功鏁堥梺鍝勮閸婃牕岣胯箛娑樜╅柨鏃傜帛椤ユ稓绱撻崒娆戝妽闁哥偛顭烽獮蹇涙晸閿燂拷 闂傚倸鍊风粈渚€骞栭锕€鐤柣妤€鐗婇崣蹇涙煙缂併垹鏋涙俊鐐扮矙閺屸€愁吋鎼粹€茬敖闂佸憡顨嗙喊宥囨崲濞戙垹骞㈡俊顖濐嚙闂夊秴鈹戦鍡欑ɑ闁告梹顨婇崺鈧い鎺戝枤濞兼劙鏌熼鑲╁煟鐎规洘娲熼弻鍡楊吋閸涱垳鍘梻浣芥硶閸o箓骞忛敓锟�,闂傚倸鍊峰ù鍥儍椤愶箑绀嬫い鎰╁灩琚橀梻浣筋嚙濮橈箓锝炴径瀣濠电姴鍋嗛崵鏇㈡煕椤愶絾绀€缂佲偓閸愨斂浜滈柡鍌氱仢閹垶銇勮箛鏇炴瀾缂佺粯鐩獮瀣倷閺夋垹娈ら梻浣呵归鍡涘箲閸パ屾綎闁告繂瀚ч弸搴ㄦ煙椤栧棗瀚禍顏堟⒒娴e憡鍟為柣鐔村劤閹广垹螣娓氼垰娈ㄦ繝鐢靛У绾板秹寮查幖浣圭叆闁绘洖鍊圭€氾拷!

推荐:一个功能齐全的DataGrid分页例子
以下为引用的内容: C#版本 DataGridPaging.aspx <%@ Page language="c#" EnableViewState

如果在程序中需要创建全局唯一的序号,那么必须对创建序号的过程进行同步处理,防止多个并发访问时出现相同序号的情况。下面列出几种方法供大家参考。

利用数据库的方法

后面的例子都基于MS SQL Server,如果使用Oracle可以直接读取Sequence对象,则不需要进行如此复杂的操作。

方法1:利用表锁定

表结构:

create table xtab (seq_id int primary key, create_time datetime)

存储过程或SQL语句:

以下为引用的内容:
begin tran

declare @max_seq int

--读出记录时锁定表

select @max_seq=max(seq_id) from xtab with (TABLOCKX)

set @max_seq = isnull(@max_seq,0)

set @max_seq = @max_seq 1

print @max_seq

insert into xtab values(@max_seq,getDate())

commit

--变量@max_seq 中存放的就是当前产生的序号

方法2:利用自增字段

如果利用自增变量可以通过方法1中锁定表,然后再插入记录,并读取最大值的方法。不过下面讲的是通过C#的ADO.NET来插入记录,并读取已经插入的记录的自增字段。

表结构:

create table xtab_i (seq_id int IDENTITY(1,1) primary key, create_time datetime)

C#代码,利用时间处理函数在数据被更新时同时读取@@IDENTITY变量的值。完整内容参考:OleDbWrap.cs 文件。

以下为引用的内容:
//参数内容:
//szSelectSql = ”select * from xtab_i where seq_id isnull”;
//szTabName = “xtab_i”;
/// <summary>
/// 通过查询语句 创建DataSet对象,返回的对象用于执行插入操作
/// </summary>
/// <param name="szSelectSql">SQL语句</param>
/// <param name="szTabName">表名称</param>
/// <returns>用于插入的DataSet对象</returns>

public DataSet CreateInsertDataSet_bySelect(string szSelectSql,string szTabName){     
 m_dbAdapter.SelectCommand = new OleDbCommand(szSelectSql, m_dbConn);
 OleDbCommandBuilder cb = new OleDbCommandBuilder(m_dbAdapter);
 DataSet ds = new DataSet();
 m_dbAdapter.Fill(ds, szTabName);
 m_dbAdapter.RowUpdated = new OleDbRowUpdatedEventHandler(OnRowUpdated_Inserted);
 return ds;
}
//----------------私有事件处理
/// <summary>
/// 处理数据插入的更新事件
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>

protected void OnRowUpdated_Inserted(object sender, OleDbRowUpdatedEventArgs args)
{
 OleDbCommand idCMD = new OleDbCommand("SELECT @@IDENTITY", m_dbConn);
 if (args.StatementType == StatementType.Insert)
 {
  object rObj = idCMD.ExecuteScalar();
  if(rObj == null) m_iDbIdentity =-1;
  else if( rObj.ToString() !="")
   m_iDbIdentity = Int32.Parse(rObj.ToString());
  else
   m_iDbIdentity =-1;
 }
 idCMD.Dispose();
 //m_iDbIdentity变量中包含的就是当前插入列的自增字段的值
}

利用程序控制

方法1:利用ASP.NET中的Application对象

利用ASP.NET中的全局HttpApplicationState对象。

C#代码:


Application.Lock();

Application[“xlock”]=”locked’;

try

{ //必须捕捉异常,避免无法解锁对象

//your Code here

}

catch (Exception e)

{

}

Application[“xlock”]=”unlock”;

方法2:利用操作系统中的同步对象来实现同步

在dotNet的框架的System.Threading命名空间下定义了多种用于同步的类,例如:Mutex,Semaphore。下面介绍一下利用互斥对象Mutex来实现同步的方法。

C#代码:

以下为引用的内容:
void Test()
{ //需要引入 System.Threading;
//创建名为MyMutex的互斥对象,如果OS已经创建过同名对象则只是重新获得句柄

Mutex m = new Mutex(false, "MyMutex");
//在10秒内等待取得访问权
boolean getMutex=m.WaitOne(10*1000,false);
if(getMutex)
{ //已经取得访问权
 try
 {
  //必须捕捉异常,避免无法解锁对象
  //Your code here
 }
 catch(Exception e)
 {
 }
 m.ReleaseMutex();
}
else
{
 //没有取得访问权
}

}

在程序中应该尽量使用Mutex这类可以命名的同步对象以达到创建多个同步对象,对多种资源进行同步的目的。如果要实现多个同入可以使用信号量 Semaphore。

其他方法:利用lock关键字防止线程并发同一段代码执行

C#代码:

以下为引用的内容:
class CTest
{
 int balance;
 void Increase()
 {
  lock (this)
  {
   balance ;
  }
 }
}

由于ASP.NET程序在IIS中可能配置不同的线程模式,所以在ASP.NET程序尽可能不要使用这种方法同步线程,而在普通的应用程序中是可以使用这种方法。

附:OleDbWrap.cs ,是一个很简单的封装类,封装了基本的数据库操作。

以下为引用的内容:
using System;
using System.Data;
using System.Data.OleDb;

namespace Wyy.Wrap
{
/// <summary>
/// wDbWrap 说明:完成数据库访问功能
/// 1 创建Connection,Adapter,管理对象内的Conn和Adapter对象
/// 2 通过Select结果集填充Dataset
/// 3 插入
/// 4 更新
/// </summary>
public class OleDbWrap
{
//--------公共方法
/// <summary>
/// 在对象被清除时会自动清除 数据库连接对象
/// </summary>
public OleDbWrap()
{
m_dbConn = new OleDbConnection(DbString);
m_fAutoDelConn = true;
m_dbAdapter = new OleDbDataAdapter();
m_dbConn.Open();
}
/// <summary>
/// 通过连接字符串构造内部的数据库连接对象
/// </summary>
/// <param name="strConnection">ADO连接字符串</param>
public OleDbWrap(string strConnection)
{
m_dbConn = new OleDbConnection(strConnection);
m_fAutoDelConn = true;
m_dbAdapter = new OleDbDataAdapter();
m_dbConn.Open();
}
/// <summary>
/// 通过现有连接构造对象,在对象被清除时不会自动清除 数据库连接对象
/// </summary>
/// <param name="conn">现存的数据库连接对象</param>
public OleDbWrap(OleDbConnection conn)
{
m_dbConn = conn;
m_fAutoDelConn = false;
m_dbAdapter = new OleDbDataAdapter();
//m_dbConn.Open();
}
public virtual void Dispose()
{
m_dbAdapter.Dispose();
if(m_fAutoDelConn)
{
m_dbConn.Close();
m_dbConn.Dispose();
}
}
/// <summary>
/// 通过SQL语句创建DataReader对象
/// </summary>
/// <param name="szSql">SQL语句</param>
/// <returns>DataReader对象</returns>
public OleDbDataReader CreateDataReader(string szSql)
{
OleDbCommand cmd = new OleDbCommand(szSql,m_dbConn);
OleDbDataReader dr= cmd.ExecuteReader();
cmd.Dispose();
return dr;
}
/// <summary>
/// 通过SQL查询语句,返回第一行结果,可以用于执行类似与Select Count(*)的语句
/// </summary>
/// <param name="szSql">SQL语句</param>
/// <returns>返回对象</returns>
public object ExecuteScalar(string szSql)
{
OleDbCommand idCMD = new OleDbCommand(szSql, m_dbConn);
object rObj = idCMD.ExecuteScalar();
idCMD.Dispose();
return rObj;
}
/// <summary>
/// 调用OleDbCommand 的 ExecuteNonQuery
/// </summary>
/// <param name="szSql"></param>
/// <returns></returns>
public int ExecuteNonQuery(string szSql)
{
OleDbCommand idCMD = new OleDbCommand(szSql, m_dbConn);
int iRet = idCMD.ExecuteNonQuery();
idCMD.Dispose();
return iRet;
}
/// <summary>
/// 创建查询用DataSet对象
/// </summary>
/// <param name="szSql">查询SQL语句</param>
/// <param name="szTabName">表名称</param>
/// <returns>已经被填充的DataSet对象</returns>
public DataSet CreateSelectDataSet(string szSql,string szTabName)
{
m_dbAdapter.SelectCommand = new OleDbCommand(szSql,m_dbConn);
DataSet ds = new DataSet();
m_dbAdapter.Fill(ds,szTabName);
return ds;
}
/// <summary>
/// 通过查询语句 创建DataSet对象,返回的对象用于执行插入操作
/// </summary>
/// <param name="szSelectSql">SQL语句</param>
/// <param name="szTabName">表名称</param>
/// <returns>用于插入的DataSet对象</returns>
public DataSet CreateInsertDataSet_bySelect(string szSelectSql,string szTabName)
{
m_dbAdapter.SelectCommand = new OleDbCommand(szSelectSql, m_dbConn);

OleDbCommandBuilder cb = new OleDbCommandBuilder(m_dbAdapter);

DataSet ds = new DataSet();
m_dbAdapter.Fill(ds, szTabName);
m_dbAdapter.RowUpdated = new OleDbRowUpdatedEventHandler(OnRowUpdated_Inserted);
return ds;
}
/// <summary>
/// 通过查询语句 创建DataSet对象,返回的对象用于执行更新操作
/// </summary>
/// <param name="szSelectSql">SQL语句</param>
/// <param name="szTabName">表名称</param>
/// <returns>用于更新的DataSet对象</returns>
public DataSet CreateUpdateDataSet_bySelect(string szSelectSql,string szTabName)
{
m_dbAdapter.SelectCommand = new OleDbCommand(szSelectSql, m_dbConn);

OleDbCommandBuilder cb = new OleDbCommandBuilder(m_dbAdapter);

DataSet ds = new DataSet();
m_dbAdapter.Fill(ds, szTabName);
return ds;
//m_dbAdapter.RowUpdated = new OleDbRowUpdatedEventHandler(OnRowUpdated_Update);
}
//----------------私有事件处理
/// <summary>
/// 处理数据插入的更新事件
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
protected void OnRowUpdated_Inserted(object sender, OleDbRowUpdatedEventArgs args)
{
OleDbCommand idCMD = new OleDbCommand("SELECT @@IDENTITY", m_dbConn);

if (args.StatementType == StatementType.Insert)
{
object rObj = idCMD.ExecuteScalar();
if(rObj == null)
m_iDbIdentity =-1;
else if( rObj.ToString() !="")
m_iDbIdentity = Int32.Parse(rObj.ToString());
else
m_iDbIdentity =-1;
}
idCMD.Dispose();
}
//------------公共属性
/// <summary>
/// 在插入数据后获取新数据行中自增字段的值,目前只能支持一个自增字段
/// </summary>
public Int32 DbIdentity {get{return m_iDbIdentity;} }
/// <summary>
/// 数据库连接字符串,保存在web.config文件中 <appSettings>节
/// </summary>
public string DbString {get{return System.Configuration.ConfigurationSettings.AppSettings["dbStr"];}}

//------------公共变量
/// <summary>
/// 数据库连接
/// </summary>
public OleDbConnection m_dbConn;
/// <summary>
/// 查询Adapter
/// </summary>
public OleDbDataAdapter m_dbAdapter;
public const String m_szRootUrl ="/copathway/toDo/";

//---------- 私有变量
/// <summary>
/// 保存数据库插入是自增字段的值
/// </summary>
protected Int32 m_iDbIdentity =-1;
protected bool m_fAutoDelConn = true;
}
}

分享:教你在asp.net中动态变更CSS
在asp.net中,有的时候要动态变换CSS,比如有的时候做个性化页面,可以这样做。 以下为引用的内容:   <head>   <link id="MyStyleS

来源:模板无忧//所属分类:.Net教程/更新时间:2008-08-22
loading.. 评论加载中....
相关.Net教程
闂傚倸鍊烽悞锕傛儑瑜版帒鏄ラ柛鏇ㄥ灠閸ㄥ倿姊洪鈧粔鐢稿磻閵堝鐓涢柛銉ㄥ煐缁舵稓绱撳鍡欏⒌闁哄本鐩崺鍕礃椤忎礁顫岄梻浣瑰▕閺€杈╂暜濡ゅ懎桅闁告洦鍨伴崡铏繆閵堝倸浜炬繛瀛樼矋閸庢娊鈥旈崘顔嘉ч煫鍥ㄦ礈鑲栭梻浣烘嚀閸ゆ牠骞忛敓锟�
婵犵數濮烽弫鎼佸磻濞戙埄鏁嬫い鎾跺枑閸欏繑銇勯幘鍗炵仼缁炬儳顭烽弻鐔兼倷椤掍胶浼囧┑鈩冨絻閻楁捇寮婚敓鐘茬<婵犻潧娲ㄩ妴濠冪節閳封偓閸曨厸濮囨繛锝呮搐閿曨亪骞婇悩娲绘晢濠㈣泛妫楁禍鐐節闂堟侗鍎愰柣鎾跺枛閺屾洝绠涙繝鍐╃彅闂佽绻戦悡锟犲蓟閻旂厧绀勯柕鍫濇椤忥拷
婵犵數濮烽弫鍛婃叏閻戝鈧倹绂掔€n亞鍔﹀銈嗗坊閸嬫捇鏌涢悢閿嬪仴闁糕斁鍋撳銈嗗笒鐎氬嘲螞閹寸姷纾奸弶鍫氭櫅娴犳粍銇勯幘鍐叉倯鐎垫澘瀚埀顒婄秵娴滄繈顢樻ィ鍐╃厽閹艰揪绲鹃崵鈧柣搴㈠嚬閸樼晫绮╅悢鐓庡耿婵炲棙鍔曟惔濠冪箾閹寸偞鐓g紒鑸靛哺瀵鏁愭径濠庢綂闂佸疇妗ㄩ懗鑸靛閸儲鈷戦柣鐔告緲濞堚晠鏌熼崙銈嗗
婵犵數濮烽弫鍛婃叏閻戝鈧倹绂掔€n亞鍔﹀銈嗗坊閸嬫捇鏌涢悢閿嬪仴闁糕斁鍋撳銈嗗笒鐎氬嘲螞閹寸姷纾奸弶鍫氭櫅娴犳粍銇勯幘鍐叉倯鐎垫澘瀚换婵嬪礋闂堟稒鍊梻鍌氬€峰ù鍥敋閺嶎厼鍨傞幖娣妼缁€瀣亜閹炬瀚呭鑸碘拻濞达絿鐡旈崵娆撴⒑鐢喚鍒板畝锝堝劵椤︽煡鎽堕悙瀵哥闁瑰瓨鐟ラ悘顏堟煕鐎n亶妯€闁哄被鍔戦幃銈夊磼濞戞﹩浼�
闂傚倸鍊搁崐鐑芥嚄閼哥數浠氱紓鍌欒兌缁垶宕濆▎鎾跺祦濠电姴鍟崕鐔兼煏婵炲灝鍔ら柛鏃撶畱椤啴濡堕崱妤冪懆闂佺ǹ锕ら幗婊堝极椤曗偓瀹曞ジ寮撮悙娈垮晣闂佽瀛╃粙鎺戠幓閸ф鍎楅柟鐑樻煛閸嬫挾鎲撮崟顒傤槰缂備浇顕ч悧鎾愁嚕椤愶箑绠荤紓浣股戝▍銏ゆ⒑鐠恒劌娅愰柟鍑ゆ嫹
闂傚倸鍊搁崐鐑芥嚄閼哥數浠氱紓鍌欒兌缁垶宕濆▎鎾跺祦濠电姴鍟崕鐔兼煏婵炲灝鍔ら柛鏃撶畱椤啴濡堕崱妤€娼戦梺绋款儐閹瑰洭寮诲☉姗嗘僵妞ゆ帒顦崜宕囩磽娓氬洤鏋涢柨鏇ㄤ邯瀵偊宕掗悙鑼槶閻熸粌绻橀幃锟犲箻缂佹ḿ鍘介柟鍏兼儗閸ㄥ啿鐣濆☉銏$厸闁告侗鍠氱粻鐐烘煙椤栨俺瀚伴柍璇查叄楠炲鎮╃喊澶岄棷婵犵數鍋為幐濠氭嚌妤e啯鏅濋柕澹偓閸嬫挸顫濋悙顒€顏�
闂傚倸鍊搁崐宄懊归崶顒€违闁逞屽墴閺屾稓鈧綆鍋呯亸浼存煏閸パ冾伃鐎殿喕绮欐俊姝岊槷婵℃彃鐗撳鐑樺濞嗗繒妲i梺闈╃秶缂嶄礁顕g拠娴嬫婵☆垶鏀遍弬鈧梻浣哥秺閸嬪﹥绂嶉悙鐑樺殑闁惧繐婀辩壕钘壝归敐澶嬫锭濠德ゅГ娣囧﹪鎮欓懜娈挎濡炪倖娲╃紞浣逛繆閹间礁鐓涘┑鐘插暞濞呮牗绻濋悽闈涗粶婵☆偅鐟╁畷褰掓偨閻㈢數鐣堕梺璺ㄥ枔婵敻鍩涢幋锔界厱婵犻潧妫楅鈺呮煃瑜滈崜娆撯€﹂悜鐣屽祦濠电姴娲ょ粻濠氭煠閸涘⿴鍟忔繛鑲╁枛濮婅櫣鎹勯妸銉︾彚闂佺懓鍤栭幏锟�
闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢敃鈧悿顕€鏌eΔ鈧悧濠囧矗韫囨搩娓婚悗锝庝簼閹癸絿绱掗埀顒佺節閸屻倗鍞甸梺鍏兼倐濞佳勬叏閸儲鐓熼柟鍨缁夘噣鏌熼娆炬綈婵炵⒈浜獮蹇撶暆婵犲倸韦濠电姷鏁搁崑娑㈡儑娴兼潙纾归柡鍥ュ灪缁犳帡姊绘担鐟邦嚋缂佽鍊歌灋婵炲棙鍨归惌鍡涙煃瑜滈崜鐔奉潖濞差亜宸濆┑鐐寸閸ㄥ潡骞冭閹晠鎳犻浣诡啎闂備浇顫夋竟鍡樻櫠濡ゅ懎鐤鹃柟闂寸劍閻撱儵鏌i弴鐐测偓鍦偓姘炬嫹
濠电姷鏁告慨鐑姐€傞挊澹╋綁宕ㄩ弶鎴濈€銈呯箰閻楀棛绮堥崼鐔虹瘈闂傚牊绋掗敍宥夋煟閺傛寧顥炲ǎ鍥э躬椤㈡稑顫濋浣糕偓顖炴煟鎼淬垺鐨戠紒顕呭灦婵$敻宕熼姘鳖啋闁诲酣娼ч幗婊堟偩濞差亝鐓熼幖娣灮閸熸煡鏌熼崙銈嗗
婵犵數濮烽弫鍛婃叏閻戝鈧倹绂掔€n亞鍔﹀銈嗗坊閸嬫捇鏌涢悢閿嬪仴闁糕斁鍋撳銈嗗笒鐎氬嘲螞閹寸姷纾奸弶鍫氭櫅娴犳粍銇勯幘鐐藉仮鐎规洖鐖兼俊鎼佸Ψ椤旇崵绌挎繝纰夌磿閸嬫垿宕愰弽顓炵闁煎鍊栧畷鏌ユ煕閹板吀绨撮柛瀣尭椤繈鎼归銈呮锭濠电儑绲藉ú銈夋晝椤忓牄鈧礁鈽夊Ο婊勬閸┾偓妞ゆ帊鐒﹀▍鐘绘煕濞嗗浚妲虹紒鈾€鍋撴俊鐐€ら崑鎺楀窗濡ゅ啠鍋撳鐐
濠电姷鏁告慨鐑姐€傞挊澹╋綁宕ㄩ弶鎴濈€銈呯箰閻楀棛绮堥崼鐔虹瘈闂傚牊绋掗敍宥夋煟閺傛寧顥為柟渚垮妼椤啰鎷犻煫顓烆棜闂佽姘﹂~澶娒洪敃鍌氱闁绘梻顑曢埀顑跨閳诲酣骞樺畷鍥舵Н闂備胶绮幐鍝ヨ姳閸洖纾婚柟鍓х帛閸嬨劑鏌涘☉姗堝姛闁告ɑ鎮傚娲礈閹绘帊绨肩紓浣筋嚙鐎氼剟鎮洪鐐╂斀闁绘ɑ鍓氶崯蹇涙煕閿濆骸鐏︽鐐茬箻閺佹捇鏁撻敓锟�
濠电姷鏁告慨鐑姐€傞挊澹╋綁宕ㄩ弶鎴濈€銈呯箰閻楀棛绮堥崼鐔虹瘈闂傚牊绋掗敍宥夋煟閺傛寧顥為柟渚垮妼椤啰鎷犻煫顓烆棜闂傚倷绀侀幖顐︽嚐椤栫偛绠犳慨妞诲亾鐎规洘妞介崺鈧い鎺嶉檷娴滄粓鏌熼崫鍕棞濞存粓绠栧铏光偓鍦閸ゆ瑩姊虹敮顔剧М闁绘侗鍣i獮瀣晝閳ь剛绮诲☉銏♀拻闁割偆鍠撻埊鏇熴亜閺傛寧顥㈡慨濠勭帛閹峰懘宕ㄦ繝鍐ㄥ壍闂佽瀛╃喊宥夊箖閸岀偟宓侀煫鍥ㄧ⊕閺呮悂鏌ㄩ悤鍌涘
濠电姷鏁告慨鐑姐€傞挊澹╋綁宕ㄩ弶鎴濈€銈呯箰閻楀棛绮堥崼鐔虹瘈闂傚牊绋掗敍宥夋煟閺傛寧顥為柟渚垮妼椤啰鎷犻煫顓烆棜闂佽姘﹂~澶娒洪埡鍐濞撴埃鍋撻柣娑卞枤閳ь剨缍嗘禍鏍绩娴犲鐓曟い鎰靛亜娴滄绱掗幉瀣
婵犵數濮烽弫鍛婃叏閻戝鈧倹绂掔€n亞鍔﹀銈嗗坊閸嬫捇鏌涢悢閿嬪仴闁糕斁鍋撳銈嗗笒鐎氬嘲螞閹寸姷纾奸弶鍫氭櫅娴犳粍銇勯幘鍐叉倯鐎垫澘瀚换婵嬪礋椤撶偛绠戦梻鍌氬€烽懗鍫曞箠閹剧粯鍋ら柕濞у嫬搴婇梺鍛婃处閸ㄥジ寮崒鐐村€垫繛鎴烆仾閼测晜宕查柛鈩兦滄禍婊堟煛瀹ュ海鍘涙繛鍫熸煥椤儻顦茬€殿喖澧庨幑銏犫攽鐎e墎绋忓銈嗘濡嫰顢旈敓锟�
闂傚倸鍊峰ù鍥敋瑜庨〃銉╁箹娴gǹ鍋嶅┑鐘诧工閻楀棛绮堥崼鐔虹瘈闂傚牊渚楅崕鎰版煕鐎n亶鍎旈柡宀€鍠栭獮鍡涙偋閸偅顥夐梻浣规た閸樹粙銆冮崨鏉戠厴闁硅揪闄勯崑鎰版煙缂佹ê绗氭繛鍫弮濮婄儤绺介崨濠冮敪缂傚倸绉撮敃顏勵嚕婵犳艾围濠㈣泛顑呭▓鐔兼⒑闂堟侗妲堕柛搴ㄤ憾閿濈偛顓兼径瀣ф嫼缂傚倷鐒﹀玻鎸庣珶閸曨厾纾界€广儱瀚ˇ锕傛煟閿濆懎妲婚柍璇查叄楠炴ḿ鈧稒蓱椤忕喖姊绘担鑺ョ《闁革綇绠撻獮蹇涙晸閿燂拷
UB闂傚倸鍊搁崐椋庣矆娴i潻鑰块弶鍫氭櫅閸ㄦ繃銇勯弽顐粶缂佲偓婢跺绻嗛柕鍫濇噺閸g晫鈧鎸风欢姘跺蓟濞戙垹唯闁靛繆鍓濋悵鏇㈡煟鎼淬垻顣茬€光偓閹间礁绠栨俊銈傚亾闁宠棄顦埢宥夋惞椤愩垻浼岄梺鎸庣箘閸嬨倝寮幘缁樻櫢闁跨噦鎷�
闂傚倸鍊搁崐宄懊归崶銊х彾闁割偆鍠嗘禒鍫㈢磼鐎n偒鍎ユ繛鍏肩墪閳规垿鎮╁畷鍥舵殹闂佺粯甯$粻鏍箖濡ゅ懏鍋ㄩ柣銏㈠仯閳ь剙锕弻娑氣偓锝庡亝瀹曞矂鏌e☉鍗炴珝鐎规洖缍婇、娆撳矗閵壯勶紡婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閻撱儵鏌i弴鐐测偓鍦偓姘炬嫹
闂傚倸鍊峰ù鍥敋瑜庨〃銉╁传閵壯傜瑝閻庡箍鍎遍ˇ顖炲垂閸岀偞鐓曟繝闈涙椤忕敻鏌ら弶鎸庡仴闁哄本鐩慨鈧柕蹇曞У椤旓拷
闂傚倸鍊搁崐椋庣矆娓氣偓楠炲鍨鹃幇浣圭稁缂傚倷鐒﹁摫闁告瑥绻愰—鍐偓锝庝簼閹癸絿绱掗埀顒佺節閸屻倗鍞甸柣鐘荤細濞咃綁鎮橀柆宥嗙厱婵°倓鑳堕。鑼磼缂佹ḿ娲寸€规洖宕灃闁逞屽墴椤㈡濮€閵堝棛鍘遍梺缁樺姇濡﹤危閸︻厾纾肩紓浣贯缚閵嗘帞绱掓潏銊ф噰闁诡喒鏅犲畷顐﹀礋椤愩垼鍘梻鍌氬€烽懗鑸电仚婵°倗濮寸换姗€鐛箛娑欐櫢闁跨噦鎷�
缂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴鐐测偓褰掑磻閿熺姵鐓ラ柡鍥╁仜閳ь剚鎮傚畷褰掑磼濞戞氨鐦堟繝鐢靛Т閸婃悂顢旈锝冧簻闁冲搫鎳忛弫閬嶆煏閸パ冾伃妤犵偞甯掗濂稿炊閼告晫婊呯磽閸屾瑧鍔嶇憸鏉垮暙閿曘垽鏌嗗鍛姦濡炪倖甯掗崐鍛婄椤栫偞鐓曞┑鐘插暟缁犳ḿ绱掓潏銊﹀碍妞ゎ偅绻冮敍鎰攽閸ャ劍鐝﹂梻鍌欐祰濞夋洟宕抽敃鍌氱闁跨噦鎷�
©2017 www.mb5u.com濠电姷鏁告慨鐑姐€傞挊澹╋綁宕ㄩ弶鎴濈€銈呯箰閻楀棛绮堥崼鐔虹瘈闂傚牊绋掗敍宥夋煟閺傛寧顥為柟渚垮妼椤啰鎷犻煫顓烆棜闂佽瀛╅鏍闯椤曗偓瀹曟娊鏁愭径濠勭暫闂佸啿鎼幊搴g不閻㈠憡鐓欓柣鎴炆戠亸顓㈡煟閿斿吋瀚�
闂傚倸鍊搁崐宄懊归崶顒€违闁逞屽墴閺屾稓鈧綆鍋呭畷宀勬煛瀹€鈧崰鏍€佸☉妯峰牚闁告劗鍋撳В澶嬩繆閻愵亜鈧垿宕曟繝姘闁跨噦鎷�&闂傚倸鍊搁崐椋庣矆娓氣偓楠炲鏁嶉崟顒佹闂佸湱鍎ら崵锕€鈽夐姀鐘电潉闂佸壊鍋嗛崳銉ノ涢崨瀛樷拺閻犳亽鍔屽▍鎰版煙閸戙倖瀚�
QQ缂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾鐎殿喚鏁婚、妤呭焵椤掑嫧鈧棃宕橀钘夌檮婵犮垹鍘滈弲婊堟儎椤栫偛鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢敃鈧壕鍦磽娴h偂鎴濃枍閻樺厖绻嗛柕鍫濆€告禍鎯ь渻閵堝骸浜濈紒璇茬墦閵嗕礁鈻庨幋婵囩€抽梺鍛婎殘閸嬬偤顢欓崒娑楃箚闁绘劦浜滈埀顒佺墪椤繑绻濆顒€鍋嶉悷婊冪箻楠炲骞橀鑺ユ闂佽法鍣﹂幏锟�闂傚倸鍊搁崐鐑芥嚄閸洖鍌ㄧ憸鏃堝箖濡警娼╂い鎺戝€瑰▓鎯р攽椤斿浠滈柛瀣尰閵囧嫰濮€閿涘嫭鍣伴悗瑙勬礀瀹曨剝鐏冩繝鐢靛Т閸婂綊顢欓崒娑楃箚闁绘劦浜滈埀顒佺墪椤繑绻濆顒€鍋嶉悷婊冪箻楠炲骞橀鑺ユ闂佽法鍣﹂幏锟�婵犵數濮烽弫鎼佸磻濞戙垺鍋ら柕濞у啫鐏婇棅顐㈡处閹尖晛霉閺嶎厽鐓忓┑鐐茬仢閸撳墽鎲告惔鈽嗗殫闁告洦鍋嗛弳鍡涙煃瑜滈崜娑欑珶閺囩喆鍋呴柛鎰ㄦ櫇閸欏棝姊虹紒妯荤闁稿﹤婀遍埀顒佺啲閹凤拷闂傚倷娴囬褏鈧稈鏅犻、娆撳冀椤撶偟鐛ラ梺鍦劋椤ㄥ懐澹曟繝姘厵闁硅鍔曢崥褰掓煕濞嗘劖宕岄柡灞剧洴婵$兘骞嬪┑鍡樻濠电偛鐗嗘晶搴f閹捐纾兼慨妯诲閺嬪矂姊洪悷鏉挎闁瑰嚖鎷�闂傚倸鍊搁崐宄懊归崶顒佸剭妞ゆ劧绠戠粈瀣亜閹扳晛鐏╃悮姗€姊绘担绛嬪殭婵﹫绠撻敐鐐村緞鐎n剛顔曟繝鐢靛Т濞层劌鐣垫笟鈧弻鈥崇暤椤旂懓浜鹃梺鍓插亽娴滎亪寮诲☉銏犵労闁告劕銇樼欢闈涒攽閳藉棗浜鹃柟鍑ゆ嫹婵犵數濮烽弫鍛婃叏娴兼潙鍨傞柣鎾崇岸閺嬫牗绻涢幋鐐寸殤闁活厽鎹囬弻鐔虹磼閵忕姵鐏堥梺鍝勫閸庡弶绌辨繝鍥ч柛娑卞幗濞堝墎绱掓ィ鍐暫缂佺姵鐗犲濠氭偄鐞涒€充壕婵炴垶鐟$紓姘辩磼閻樺磭澧辩紒杈ㄥ笧閹风姾顦抽悗姘炬嫹闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢埛姘そ閺佸啴鍩€椤掆偓閻滃宕归瑙勭€婚梺瑙勫劤缁夋潙煤椤撱垹鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘...