問題はありませんが、アプローチが改善可能かどうかを尋ねている場合は、はい.
これらのプロパティ(性別を含む)を持つクラスを使用するだけです。
class Person
{
public bool IsFemale { get; set; }
public string Name { get; set; }
}
これで、単一のコレクションを作成できます。たとえば、List<Person>
それをループします。
var persons = new List<Person>() {
new Person{IsFemale=false, Name="john"},new Person{IsFemale=false, Name="james"},
new Person{IsFemale=true, Name="stacy"},new Person{IsFemale=true, Name="paula"}
};
foreach(Person p in persons)
{
//call to stored procedure there
//parameters
//execute
}
編集:ADO.NET部分に問題がある場合は、次の例をご覧ください:
using (var con = new SqlConnection(connectionString))
using (var cmd = new SqlCommand("StoredProcedureName", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Gender", typeof(string));
cmd.Parameters.Add("@Name", typeof(string));
con.Open();
foreach (var person in persons)
{
cmd.Parameters["@Gender"].Value = person.IsFemale ? "female" : "male";
cmd.Parameters["@Name"].Value = person.Name;
cmd.ExecuteNonQuery();
}
}