2011-12-28 26 views

Trả lời

62
Log.WriteLine("Value of CompanyName column:" + thisReader["CompanyName"]); 
+5

tôi sử dụng như là cách giải quyết sau - 'Log.WriteLine ("Giá trị của cột CompanyName:" + thisReader.GetValue (thisReader.GetOrdinal ("CompanyName"))); ' [] có nghĩa là gì? – algot

+0

@ không phải là thuộc tính được lập chỉ mục, hãy xem http://msdn.microsoft.com/en-us/library/aa288464.aspx hoặc http://msdn.microsoft.com/en-us/library/2549tw02.aspx –

+1

I không hiểu cú pháp "thisReader [" CompanyName "]). Nó là không có cách nào hợp lý Logical sẽ là" thisReader.fields ("CompanyName") .giá trị ".Nhưng tôi là ai để thẩm phán ... – tmighty

41

Bạn cũng có thể thực hiện việc này.

//find the index of the CompanyName column 
int columnIndex = thisReader.GetOrdinal("CompanyName"); 
//Get the value of the column. Will throw if the value is null. 
string companyName = thisReader.GetString(columnIndex); 
+0

Tôi đã suy nghĩ trong trường hợp này có thể có nhiều lợi ích hơn sau đó trực tiếp đọc dữ liệu từ người đọc như thisReader ["CompanyName"]. Bạn có thể vui lòng đưa ra bất kỳ trường hợp cụ thể nào không? Cảm ơn rất nhiều btw – curiousBoy

+1

@curiousBoy làm theo cách này sẽ giúp kiểm tra xem liệu có dễ dàng hơn không cột tồn tại, cũng đảm bảo giá trị bạn đang chọn nằm trong đúng định dạng dữ liệu, ví dụ GetString, GetInt32 nó không trả về một đối tượng bạn phải truyền. Đây là lý do tại sao tôi sẽ sử dụng phương pháp này –

+0

@DavidMolyneux thx cho nhận xét của bạn, theo như tôi hiểu từ lời giải thích của bạn, về cơ bản là "kiểm tra" cho chuỗi và ném lỗi trong trường hợp giá trị là null. Điều này cũng làm cho tôi điều rằng đây chỉ là cho loại chuỗi. Ngoài ra, ví dụ: "int productQuantiy = thisReader [" ProductQuantity "]" sẽ ném một lỗi nếu ProductQuantity không có giá trị int hợp lệ, phải không? thx một lần nữa. – curiousBoy

-3

thisReader.GetString (int columnIndex)

+0

Vui lòng thêm một số giải thích về cách câu trả lời này thực sự * giải quyết * vấn đề. – ekad

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