如何创建通用列表并使用c#中的Select SQL Query填充

我在Visual Studio Express 2012中使用C#.我专门使用桌面应用程序.作为数据库,我使用MySQL数据库和MySQL之间的连接工作正常.我的疑问是关于搜索并返回结果.在我见过的所有例子中,最常见的是在我的类中创建一个方法...

我在Visual Studio Express 2012中使用C#.我专门使用桌面应用程序.
作为数据库,我使用MySQL

数据库和MySQL之间的连接工作正常.

我的疑问是关于搜索并返回结果.

在我见过的所有例子中,最常见的是在我的类中创建一个方法MySQL输入代码hereconnection,它将返回一个包含搜索结果的列表.我真的不知道这在概念上是否更正确,但似乎非常可以接受.

我设法做了一个搜索,从我的桌子返回所有客户.但我的大问题是:如何制作这种通用方法?

例如

我的表单有一个触发click事件的按钮:

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;
    }
}

最后,我的班级客户

public class Clients
{
    public string Id { get; set; }
    public string Name { get; set; }
}

这一切都有效,但非常特定于客户端的查询.

如果现在我打电话列表SQLQuery = 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一无所知……

解决方法:

我同意其他评论员,如果你学习EF和LINQ它会让你的生活更轻松.

Entity Framework Video

Introduction to LINQ Video
Introduction to LINQ Queries Webpage
Lots of LINQ examples C#

就您的解决方案而言,您可以制作3种不同的选择方法:SelectClients,SelectProduct和SelectRooms.您需要更改一些代码,以便它只打开和关闭一次连接.

本文标题为:如何创建通用列表并使用c#中的Select SQL Query填充

基础教程推荐