2011-07-14 38 views
15

Làm việc trên một C# giao diện điều khiển ứng dụng, tôi có một dòng:Lỗi "Thiếu toán hạng sau 'toán tử Bannon' - toán tử 'Bannon' là gì?

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

rowsFound là một DataRow[], tempUsers là một DataTable, và userData là một SqlDataReader. Tôi có chỉ số sai cho userData (nó là 1) và tôi đã nhận lỗi này:

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) 

Khi tôi chèn các chỉ số chính xác (2), sai đi.

Bất kỳ ý tưởng nào về "nhà điều hành Bannon" là gì?

+16

[Tham chiếu xkcd bắt buộc] (http://xkcd.com/327/) – dtb

+2

Câu hỏi hay nhất từ ​​trước tới nay. –

+1

Là 'userdata [1]' họ của người dùng? Tên anh ấy là "O'Bannon"? –

Trả lời

25

Đó chàng có lẽ gọi là O'Bannon (= userData[1]), kết quả là chuỗi sau:

EmailAddress = 'O'Bannon' 

Câu hỏi Stackoverflow sau đây có chứa một hướng dẫn về làm thế nào để thoát khỏi đúng dữ liệu được sử dụng trong DataTable.Select:

Đối với dấu nháy đơn, bạn chỉ cần cần phải sao chép chúng: ' ->''.

+11

À vâng, Bobby Bảng khét tiếng ... –

+0

@ J. Steen: IMHO, SLaks xứng đáng nhận xét tuyệt vời này :) – naveen

8

userData[1].ToString() có lẽ là một cái gì đó giống như Bobby' Bannon

+0

Ah vâng, nổi tiếng Bobby Bàn ... (thêm cho truyện tranh cứu trợ, theo yêu cầu;) –

1

Hãy link này xem. Bannon xuất phát từ số UserData[2].ToString()

Các vấn đề liên quan