我已经编写了此查询以获取一些结果,如果我想将结果保存在数组中我该怎么办?我想在IF语句中使用col1和col2中的值,这就是为什么我正在考虑将它们保存在数组中的原因。
var con = new SqlConnection("Data Source=local;Initial Catalog=Test;Integrated Security=True"); using (con) using (var command = new SqlCommand("SELECT col1,col2 FROM some table", con)) { con.Open(); command.ExecuteNonQuery(); }
通常我为此使用一个类:
public class ClassName { public string Col1 { get; set; } public int Col2 { get; set; } }
现在,您可以使用循环来填充列表,ToArray如果您确实需要数组:
ToArray
ClassName[] allRecords = null; string sql = @"SELECT col1,col2 FROM some table"; using (var command = new SqlCommand(sql, con)) { con.Open(); using (var reader = command.ExecuteReader()) { var list = new List<ClassName>(); while (reader.Read()) list.Add(new ClassName { Col1 = reader.GetString(0), Col2 = reader.GetInt32(1) }); allRecords = list.ToArray(); } }
请注意,我假定第一列是a string,第二列是a integer。只是为了证明C#是类型安全的,以及如何使用这些DataReader.GetXY方法。
string
integer
DataReader.GetXY