Visual Studio Express 2012でC#を使用しています。デスクトップアプリケーションのみを使用しています。データベースとしてMySQLを使用しています
データベースとMySQL間の接続は完全に機能しています。
私の疑問は、検索を行って結果を返すことです。
私が見たすべての例の中で、最も一般的なのはenter code here
、検索結果を含むリストを返す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;
}
}
そして最後に、私のクラスのクライアント
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、EntityFrameworkについては何も知りません...