2011-07-14 9 views
15

सी # कंसोल ऐप पर काम करना, मेरे पास एक लाइन है:त्रुटि "बैनर 'ऑपरेटर के बाद ऑपरेंड गुम है" -' बैनन 'ऑपरेटर क्या है?

rowsFound = tempUsers.Select("EmailAddress = '" + userData[2].ToString() + "'"); 

rowsFound एक DataRow[] है, tempUsers एक DataTable है, और userData एक SqlDataReader है। मेरे पास userData के लिए गलत इंडेक्स था (यह 1 था) और मुझे यह त्रुटि मिली:

System.Data.SyntaxErrorException was unhandled 
    Message=Syntax error: Missing operand after 'Bannon' operator. 
    Source=System.Data 
StackTrace: 
    at System.Data.ExpressionParser.Parse() 
    at System.Data.DataExpression..ctor(DataTable table, String expression, Type type) 
    at System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates) 
    at System.Data.DataTable.Select(String filterExpression) 

जब मैंने सही इंडेक्स (2) डाला, तो त्रुटि दूर हो गई।

"बैनर ऑपरेटर" क्या है पर कोई विचार है?

+16

[Obligatory xkcd संदर्भ] (http://xkcd.com/327/) – dtb

+2

से सबसे अच्छा सवाल है। –

+1

उपयोगकर्ता का अंतिम नाम 'userdata [1] है? क्या उसका नाम "ओबैनन" है? –

उत्तर

25

उस लड़के शायद O'Bannon (= userData[1]) कहा जाता था, निम्न स्ट्रिंग में जिसके परिणामस्वरूप:

    :

    EmailAddress = 'O'Bannon' 
    

    निम्नलिखित Stackoverflow सवाल DataTable.Select में इस्तेमाल ठीक से डेटा से बचने के लिए कैसे पर एक गाइड शामिल

  • Correct way to escape characters in a DataTable Filter Expression

सिंगल कोट्स के संबंध में, आप बस उन्हें डुप्लिकेट करने की आवश्यकता है: ' ->''

+11

आह हाँ, कुख्यात बॉबी टेबल्स ... –

+0

@ जे स्टीन: आईएमएचओ, एसएलएक्स इस महान टिप्पणी के लायक हैं :) – naveen

8

userData[1].ToString() शायद की तरह Bobby' Bannon

+0

आह हाँ, कुख्यात बॉबी टेबल्स ... (अनुरोध पर हास्य राहत के लिए जोड़ा गया;) –

1

कुछ इस link कृपया देखें था। बैनन UserData[2].ToString()

संबंधित मुद्दे