主に、ローカル データベースに接続するデータベースが 3 つあるため、アプリ内にデータベース マネージャー クラスを実装しています。
ただし、戻り関数が機能していません。クエリが行を戻すことはわかっていますが、クラスによって返されると0になります。何が欠けていますか?
public MySqlDataReader localfetchrows(string query, List<MySqlParameter> dbparams = null)
{
using (var conn = connectLocal())
{
Console.WriteLine("Connecting local : " + conn.ServerVersion);
MySqlCommand sql = conn.CreateCommand();
sql.CommandText = query;
if (dbparams != null)
{
if (dbparams.Count > 0)
{
sql.Parameters.AddRange(dbparams.ToArray());
}
}
MySqlDataReader reader = sql.ExecuteReader();
Console.WriteLine("Reading data : " + reader.HasRows + reader.FieldCount);
return reader;
/*
using (MySqlCommand sql = conn.CreateCommand())
{
sql.CommandText = query;
if (dbparams != null)
{
if (dbparams.Count > 0)
{
sql.Parameters.AddRange(dbparams.ToArray());
}
}
MySqlDataReader reader = sql.ExecuteReader();
Console.WriteLine("Reading data : " + reader.HasRows + reader.FieldCount);
sql.Parameters.Clear();
return reader;
}*/
}
}
そして、結果を取得するコード
query = @"SELECT jobtypeid, title FROM jobtypes WHERE active = 'Y' ORDER BY title ASC";
//parentfrm.jobtypes = db.localfetchrows(query);
var rows = db.localfetchrows(query);
Console.WriteLine("Reading data : " + rows.HasRows + rows.FieldCount);
while (rows.Read()){
}
これらのスクリプトは次を返します。
Connecting local : 5.5.16
Reading data : True2
Reading data : False0