我正在使用Visual Studio Express 2012中的C#进行工作,我只与桌面应用程序一起工作。 我使用MySQL作为数据库。
数据库与MySQL之间的连接完全正常。
我的疑问是关于搜索和返回结果的制作。
在我看过的所有示例中,最常见的是在我的MySQL类中创建一个方法,该方法将返回具有搜索结果的列表。 我真的不知道这是否在概念上更正确,但它似乎非常可接受。
我成功地执行了搜索以返回我的表中的所有客户端。 但是我最大的问题是:如何制作此通用方法?
例如:
我的表单有一个按钮,触发点击事件:
最后,我的客户类Clients。
数据库与MySQL之间的连接完全正常。
我的疑问是关于搜索和返回结果的制作。
在我看过的所有示例中,最常见的是在我的MySQL类中创建一个方法,该方法将返回具有搜索结果的列表。 我真的不知道这是否在概念上更正确,但它似乎非常可接受。
我成功地执行了搜索以返回我的表中的所有客户端。 但是我最大的问题是:如何制作此通用方法?
例如:
我的表单有一个按钮,触发点击事件:
dbConnect = new DBConnect();
dbConnect.OpenConnection();
private List<Clients> listSQLQuery;
listSQLQuery = dbConnect.Select("select * from clients");
datagridview.DataSource = listSQLQuery;
我使用的dboConnect.Select()方法如下:
public List<Clients> Select(string query)
{
//Create a list to store the result
List<Clients> list = new List<Clients>();
Clients clients = new Clients();
//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
clients.Id = dataReader["Id"].ToString();
clients.Name = dataReader["Name"].ToString();
list.Add(cliente);
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
//return list to be displayed
return list;
}
else
{
return list;
}
}
最后,我的客户类Clients。
public class Clients
{
public string Id { get; set; }
public string Name { get; set; }
}
这一切都是有效的,但非常特定于与客户端相关的查询。
如果现在我调用listSQLQuery=dbConnect.Select("select * from products"),这个方法将不起作用,因为它是使用返回客户列表而不是产品列表构建的。
我不知道我的问题是否清楚,但我希望能够像这样调用而不必担心是客户、产品还是房间。
类似这样:
listSQLQuery.dbConnect.Select("select * from clients");
listSQLQuery.dbConnect.Select("select * from products");
listSQLQuery.dbConnect.Select("select * from rooms");
有没有一种方法可以获得通用列表返回,而不用担心listQuerySQL的类型?我只想将此列表绑定到DataGridView。
我在C#方面很新手,所以我对LINQ、Entity Framework等一无所知...