updatestatement.cs
来自「.net的数据持久层」· CS 代码 · 共 78 行
CS
78 行
using System;
using System.Text;
namespace Platform.Data {
public class UpdateStatement : StatementBase {
public UpdateStatement() : base (){}
public UpdateStatement(object obj):base(obj){}
public UpdateStatement(object obj,string _TName):base(obj,_TName){}
private string _SetString;
public string SetString {
get { return _SetString; }
set { _SetString = value; }
}
public override void BuildSqlClause() {
this.SetString = this.BuildSetString();
this.WhereString = this.BuildWhereString();
this.SqlClause = String.Format("UPDATE {0} SET {1} WHERE {2}",
this.TableName, this.SetString, this.WhereString);
}
private string BuildSetString(){
StringBuilder sb = new StringBuilder();
foreach( FieldProp fp in this.Fields ){
if( !fp.IsKeyField ){
if( sb.Length > 0 ){
sb.Append( ",");
}
sb.Append( String.Format( "{0}={1}{0}", fp.FieldName, DataHelper.DataDriver.ParameterPrix ) );
DataParameter dp = this.MakeDataParameter( fp );
this.Parameters.Add( dp );
}
}
return sb.ToString();
}
public override void FillDataParameter(object obj) {
foreach(FieldProp fp in this.Fields){
DataParameter dp = this.Parameters[ fp.FieldName ];
if( fp.Size != 0 ){
dp.Size = fp.Size;
}
dp.Value = fp.GetValue( obj );
}
}
public override StatementBase Create() {
return new UpdateStatement();
}
public override object Clone() {
UpdateStatement sql = (UpdateStatement)base.Clone();
sql.SetString = this.SetString;
return sql;
}
public void Perform( CriteriaCollection cts)
{
// if( cts != null )
// {
// this.AddCriterias( cts );
// }
//
//
// string whereString = this.CriteriaString.Length > 0 ? " WHERE " + this.CriteriaString : "";
// string sql = String.Format( "update {0} set {1} {2}",
// this.TableName,
// this.SetString,
// whereString);
//
// this.SqlClause = sql;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?