実際のオブジェクトを作成する前にMySQLCommand
オブジェクトのパラメータを作成する方法はありますか?MySQLのパラメータを追加する
は現在、私はこのように生成されたコマンドを設定する必要があります。
public static MySqlCommand User(MySqlConnection MySQL, User u)
{
var cmdVars = new List<string>();
const string cmd = "SELECT * FROM `schema`.`table` WHERE 1=1 AND ";
if (u.ID != null) cmdVars.Add("`ID` LIKE @0");
if (u.Username != null) cmdVars.Add("`Username` LIKE @1");
if (u.First != null) cmdVars.Add("`FirstName` LIKE @2");
if (u.Last != null) cmdVars.Add("`LastName` LIKE @3");
if (u.Phone != null) cmdVars.Add("`Phone` LIKE @4");
if (u.Extension != null) cmdVars.Add("`Extension` LIKE @5");
if (u.Email != null) cmdVars.Add("`Email` LIKE @6");
var MySqlCmd = new MySqlCommand(cmd + string.Join(" AND ", cmdVars), MySQL);
if (u.ID != null) MySqlCmd.Parameters.AddWithValue("@0", u.ID);
if (u.Username != null) MySqlCmd.Parameters.AddWithValue("@1", u.Username);
if (u.First != null) MySqlCmd.Parameters.AddWithValue("@2", u.First);
if (u.Last != null) MySqlCmd.Parameters.AddWithValue("@3", u.Last);
if (u.Phone != null) MySqlCmd.Parameters.AddWithValue("@4", u.Phone);
if (u.Extension != null) MySqlCmd.Parameters.AddWithValue("@5", u.Extension);
if (u.Email != null) MySqlCmd.Parameters.AddWithValue("@6", u.Email);
return MySqlCmd;
}
どちらが、細かい動作しますが、より多くのパラメータが追加されると見て総額でわずかに新しいユーザオブジェクトを作成するには、ユーザーが必要です1つの値で検索する。
私はin this questionの方法に切り替えると考えましたが、MySQLConnectorで使用すると値を管理するのが非常に複雑になり、読みやすさを向上させるために何もしません。
schema'.table'' – MethodMan
@MethodManあなたが何を言おうとしているのか分かりません。 – Uueerdo
私はまだあなたが何を意味するか分からない。私が投稿した箇所には一重引用符はありません。また、 ""はスキーマ、表、およびフィールド名を囲むためにMySQLで使用されているものです。 (_ "それを見つけ出す" _あなたがトローリングしているように見せて、実際に問題を指摘することはできません) – Uueerdo