मैं डेटाव्यू द्वारा अपने डेटाटेबल को फ़िल्टर करने के लिए इस कोड का उपयोग कर रहा हूं:

        Dim xBlockedAccounts As String = "1,5,7"
        Dim xDv_AllAcc As New DataView(MyVar_Dt_Accounts)
        xDv_AllAcc.RowFilter = "FIND_IN_SET(AccID," & xBlockedAccounts & ")"
        Me.Dgv3.DataSource = xDv_AllAcc.ToTable

लेकिन यह मुझे देता है:

एक्सप्रेशन में अपरिभाषित फ़ंक्शन कॉल FIND_IN_SET() है।'

मैं डेटाव्यू के रोफिल्टर के साथ FIND_IN_SET फ़ंक्शन का उपयोग कैसे कर सकता हूं?

1
Hamada 3 फरवरी 2021, 22:55
2
 – 
TnTinMn
3 फरवरी 2021, 23:04
FIND_IN_SET क्या है? क्या वह उपयोगकर्ता परिभाषित कार्य है?
 – 
Hursey
3 फरवरी 2021, 23:05
धन्यवाद, मैंने इसकी समीक्षा की लेकिन मुझे LINQ के साथ अनुभव नहीं है, क्या आप मेरी मदद कर सकते हैं कि मेरे कोड के समाधान को कैसे लागू किया जाए और मुझे इसका कारण जानने की जरूरत है कि पंक्ति फ़िल्टर इस फ़ंक्शन को क्यों स्वीकार नहीं करता है।
 – 
Hamada
3 फरवरी 2021, 23:09
मैंने इस कोड का उपयोग किया है: ``` `डिम क्वेरी = ऑर्डर से MyVar_Dt_Accounts.AsEnumerable() जहां ऑर्डर। फ़ील्ड (बूलियन का) ("FIND_IN_SET (AccID," और xBlockedAccounts & ")") ऑर्डर डिम व्यू को डेटा व्यू के रूप में चुनें = query.AsDataView() Dgv3.DataSource = view
 – 
Hamada
3 फरवरी 2021, 23:34
लेकिन एक गलती है क्योंकि यह मुझे कहता है (स्तंभ 'FIND_IN_SET (AccID,) नहीं है' तालिका से संबंधित नहीं है)
 – 
Hamada
3 फरवरी 2021, 23:35

1 उत्तर

सबसे बढ़िया उत्तर

मैंने मान लिया था कि MyVar_Dt_Accounts एक DataTable था। आपके पास अवरुद्ध खातों के मानों की एक सरणी होनी चाहिए। फिर लिंक जादू।

Private Sub OPCode()
    Dim MyVar_Dt_Accounts As New DataTable
    Dim xBlockedAccounts = {"1", "5", "7"}
    Dim dt = (From row As DataRow In MyVar_Dt_Accounts.AsEnumerable
              Select row
              Where xBlockedAccounts.Contains(row("AccID").ToString)).CopyToDataTable
    Dgv3.DataSource = dt
End Sub

पहले जांच लें कि AccID वास्तव में डेटाबेस में एक स्ट्रिंग है और संख्या नहीं है।

0
Mary 5 फरवरी 2021, 10:13