【发布时间】:2018-03-03 02:08:47
【问题描述】:
我尝试了这个(https://stackoverflow.com/a/14172067/7482204) 方法,但我似乎无法弄清楚如何使用类名作为返回类型来调用该方法。
Item.cs:
class Item
{
public Item GetItem(string parameter)
{
Item itemObj = new Item();
string query = "select * from items where model = @model";
try
{
using (MySqlConnection connection = Connection.GetConnection())
{
using (MySqlCommand cmd = new MySqlCommand(query,connection))
{
cmd.Parameters.AddWithValue("@model",parameter);
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
itemObj.Id = int.Parse(reader["id"].ToString());
itemObj.Model = reader["model"].ToString();
itemObj.Brand = reader["brand"].ToString();
itemObj.CategoryId = int.Parse(reader["category_id"].ToString());
itemObj.SubCategoryId = int.Parse(reader["sub_category_id"].ToString());
itemObj.HasSerialNumber = (int.Parse(reader["serialized"].ToString()) == 1 ? true : false);
}
}
}
}
}
catch (Exception ex)
{
throw new ArgumentException(ex.Message);
}
//Console.WriteLine("End"+itemObj.Model);
return itemObj;
}
}
然后我尝试访问 GetItem 方法
Item itemObj = GetItem("params");
但我遇到错误“然后名称 GetItem 在当前上下文中不存在”
【问题讨论】:
-
throw new ArgumentException(ex.Message);是一个非常糟糕的主意。你不会知道那里到底发生了什么 -
另外,
(int.Parse(reader["serialized"].ToString()) == 1 ? true : false);也可以是:reader["serialized"].ToString() == "1";