Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > RowData >
GetFilterByParameterCols

GetFilterByParameterCols根据筛选列,结合当前行的数据,获得一个用于筛选的SQL筛选条件字符串。

有两种重载:

RowData.GetFilterByParameterCols(parameterCols) 字符串类型,要返回筛选条件涉及的列清单,多个列可以用“,”分隔开,例如:ColName,Name,ID

RowData.GetFilterByParameterCols(lstCols) 字符串集合,要返回筛选条件涉及的列清单。

如果是基于主键生成的查询筛选条件的话可以直接使用GetFilterByPrimaryKey。这几种用法可以直接看下面的代码示例:

Vb.Net
Dim tbl As SmGrid=Proj.CurrentSmGrid
If tbl Is Nothing Then Return
Dim dr As RowData=tbl.CurrentRowData
If dr Is Nothing Then Return
Dim db As Database=tbl.DataTableHelp.Database
Dim strTableName As String=tbl.DataTableHelp.DataBaseTableName
If String.IsNullOrEmpty(strTableName) Then
    strTableName=tbl.DataTableHelp.EditDatatableName
End If
'根据行主键获得一个更新指定列数据的SQL语句
Dim strSQLUpdate As String="Update " + db.SQLBuilder.QuotePrefix + strTableName + db.SQLBuilder.QuoteSuffix + " Set ColA=" + db.SQLBuilder.BooleanTrueString
Dim strSQLCommand As String =strSQLUpdate  + " where " + dr.GetFilterByPrimaryKey()
Proj.MsgDebug.Add(strSQLCommand)

'GetFilterByParameterCols可以传入一个字符串,想要基于哪些列进行筛选
strSQLCommand=strSQLUpdate +" where " + dr.GetFilterByParameterCols("产品,客户,业务员")
Proj.MsgDebug.Add(strSQLCommand)

'还可以传入一个字符串集合
Dim lstCols As New List(Of String)
lstCols.Add("产品")
lstCols.Add("客户")
strSQLCommand=strSQLUpdate +" where " + dr.GetFilterByParameterCols(lstCols)
Proj.MsgDebug.Add(strSQLCommand)

'返回结果:Update [订单信息] Set ColA=1 where [_IdentifyFlag]=278
'返回结果:Update [订单信息] Set ColA=1 where 产品='产品03' and 客户='客户02' and 业务员='业务员03'
'返回结果:Update [订单信息] Set ColA=1 where 产品='产品03' and 客户='客户02'

C#
SmGrid tbl = Proj.CurrentSmGrid;
if (tbl == null)
    return;
RowData dr = tbl.CurrentRowData;
if (dr == null)
    return;
Database db = tbl.DataTableHelp.Database;
string strTableName = tbl.DataTableHelp.DataBaseTableName;
if (string.IsNullOrEmpty(strTableName))
    strTableName = tbl.DataTableHelp.EditDatatableName;
// 根据行主键获得一个更新指定列数据的SQL语句
string strSQLUpdate = "Update " + db.SQLBuilder.QuotePrefix + strTableName + db.SQLBuilder.QuoteSuffix + " Set ColA=" + db.SQLBuilder.BooleanTrueString;
string strSQLCommand = strSQLUpdate + " where " + dr.GetFilterByPrimaryKey();
Proj.MsgDebug.Add(strSQLCommand);

// GetFilterByParameterCols可以传入一个字符串,想要基于哪些列进行筛选
strSQLCommand = strSQLUpdate + " where " + dr.GetFilterByParameterCols("产品,客户,业务员");
Proj.MsgDebug.Add(strSQLCommand);

// 还可以传入一个字符串集合
List<string> lstCols = new List<string>();
lstCols.Add("产品");
lstCols.Add("客户");
strSQLCommand = strSQLUpdate + " where " + dr.GetFilterByParameterCols(lstCols);
Proj.MsgDebug.Add(strSQLCommand);

//返回结果:Update [订单信息] Set ColA=1 where [_IdentifyFlag]=278
//返回结果:Update [订单信息] Set ColA=1 where 产品='产品03' and 客户='客户02' and 业务员='业务员03'
//返回结果:Update [订单信息] Set ColA=1 where 产品='产品03' and 客户='客户02'