2013-04-24 3 views
-3

Мы создаем сайт в Visual Studio 2010 с использованием веб-форм C# и ASP.Net. Мы понятия не имеем, почему он сломался и поступил неправильно, после онлайн-учебника, и после устранения других проблем в коде возникла эта ошибка, и я не знаю, как ее исправить или что я сделал неправильно, если кто-нибудь может увидеть проблему, пожалуйста, позвольте я знаю.NotImplementedException не был обработан кодом пользователя

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data.SqlClient; 

public class ConnectionClass 
{ 
private SqlConnection conn; 
private SqlCommand command; 

ConnectionClass() 
{ 
    string connectionString = ConfigurationManager.ConnectionStrings["Connection"].ToString(); 
    conn = new SqlConnection(connectionString); 
    command = new SqlCommand("", conn); 
} 

private ArrayList GetClothesByType(string ClothesType) 
{ 
    ArrayList list = new ArrayList(); 
    string query = string.Format("SELECT * FROM fusey WHERE type LIKE '{0}'", ClothesType); 

    try 
    { 
     conn.Open(); 
     command.CommandText = query; 
     SqlDataReader reader = command.ExecuteReader(); 

     while (reader.Read()) 
     { 
      int id = reader.GetInt32(0); 
      string name = reader.GetString(1); 
      string type = reader.GetString(2); 
      double price = reader.GetDouble(3); 
      string size = reader.GetString(4); 
      string image = reader.GetString(5); 
      string review = reader.GetString(6); 

      Fusey fusey = new Fusey(id, name, type, price, size, image, review); 
      list.Add(fusey); 
     } 
    } 
    finally 
    { 
     conn.Close(); 
    } 

    return list; 
} 



internal static ArrayList GetClothesByType(object ClothesType) 
{ 
    throw new NotImplementedException(); 
} 
} 
+2

На первый взгляд, я бы сказал, что эта строка 'певд NotImplementedException()' 'в вашем методе GetClothesByType' почему вы видите исключение ... попробуйте поставить там код. – Tim

+0

http://www.catb.org/esr/faqs/smart-questions.html#urgent –

ответ

2

Вы получаете не реализованное исключение? То потому что оно не выполнено.

internal static ArrayList GetClothesByType(object ClothesType) 
{ 
    throw new NotImplementedException(); // you need to implement this method 
} 

Я не вижу где-нибудь в вашем коде, который вы называете это, но где-то есть, и я думаю, что когда вы делаете, вы получите это исключение.

MSDN documentation on NotImplementedException если вы заинтересованы

Я также вижу, что у вас есть перегрузки для GetClothesByType - вы можете быть запутанным вызов метода и передачи в object вместо string, в результате чего в нем вызова неправильно, не реализованный, метод.

Не могли бы вы показать нам свой код, где вы звоните GetClothesByType?

2

Я думаю, что вы ошибочно называете статический метод вместо частного.
Если ваше намерение вызвать метод, который принимает строку в качестве входного параметра, то вам нужно объявить его общественности и создать экземпляр класса ConnectionClass

ConnectionClass cs = new ConnectionClass(....); 
ArrayList clothes = cs.GetClothesByType("t-shirt"); 

Однако позвольте мне отметить, что хранение соединение в этом пути это плохая практика.
DbConnection - это ценный ресурс и должен использоваться по мере необходимости и сразу же выпущен. Кроме того, никогда не считайте само собой разумеющимся то, что ваш пользователь набирает на клавиатуре, и передавайте это слепо движку базы данных.
Вы открывающие путь к Sql Injection атак, использовать всегда параметризованные запросы

public ArrayList GetClothesByType(string ClothesType) 
{ 
    ArrayList list = new ArrayList(); 

    string query = "SELECT * FROM fusey WHERE type LIKE @ctype"; 
    string connectionString = ConfigurationManager.ConnectionStrings["Connection"].ToString(); 
    using(SqlConnection conn = new SqlConnection(connectionString)) 
    using(SqlCommand command = new SqlCommand(query, conn)) 
    { 
     command.Parameters.AddWithValue("@ctype", ClothesType); 
     conn.Open(); 
     SqlDataReader reader = command.ExecuteReader(); 
     ..... 
    } 
} 
+0

Гораздо более полезный ответ! –

Смежные вопросы