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' |