GetFilterByParameterCols根據(jù)篩選列,結(jié)合當(dāng)前行的數(shù)據(jù),獲得一個用于篩選的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 '根據(jù)行主鍵獲得一個更新指定列數(shù)據(jù)的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("產(chǎn)品,客戶,業(yè)務(wù)員") Proj.MsgDebug.Add(strSQLCommand) '還可以傳入一個字符串集合 Dim lstCols As New List(Of String) lstCols.Add("產(chǎn)品") lstCols.Add("客戶") strSQLCommand=strSQLUpdate +" where " + dr.GetFilterByParameterCols(lstCols) Proj.MsgDebug.Add(strSQLCommand) '返回結(jié)果:Update [訂單信息] Set ColA=1 where [_IdentifyFlag]=278 '返回結(jié)果:Update [訂單信息] Set ColA=1 where 產(chǎn)品='產(chǎn)品03' and 客戶='客戶02' and 業(yè)務(wù)員='業(yè)務(wù)員03' '返回結(jié)果:Update [訂單信息] Set ColA=1 where 產(chǎn)品='產(chǎn)品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; // 根據(jù)行主鍵獲得一個更新指定列數(shù)據(jù)的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("產(chǎn)品,客戶,業(yè)務(wù)員"); Proj.MsgDebug.Add(strSQLCommand); // 還可以傳入一個字符串集合 List<string> lstCols = new List<string>(); lstCols.Add("產(chǎn)品"); lstCols.Add("客戶"); strSQLCommand = strSQLUpdate + " where " + dr.GetFilterByParameterCols(lstCols); Proj.MsgDebug.Add(strSQLCommand); //返回結(jié)果:Update [訂單信息] Set ColA=1 where [_IdentifyFlag]=278 //返回結(jié)果:Update [訂單信息] Set ColA=1 where 產(chǎn)品='產(chǎn)品03' and 客戶='客戶02' and 業(yè)務(wù)員='業(yè)務(wù)員03' //返回結(jié)果:Update [訂單信息] Set ColA=1 where 產(chǎn)品='產(chǎn)品03' and 客戶='客戶02' |