我没有看到问题,但如果您问是否可以改进您的方法,是的。
我会简单地使用具有这些属性的类(包含性别)。
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();
}
}
如何做_what_有所不同?你想解决什么问题? – Oded
什么问题?什么数据库? – PeteH
我会说这是一种与数据库交互的非常低效的方式。最好创建一个查询并将其发送到数据库,或者建立一组参数并将它们发送到数据库。 [SQL Server数组和列表](http://www.sommarskog.se/arrays-in-sql.html)是一个很好的阅读,即使您不在SQL Server上。 – Oded