我已经写了这个查询来获得一些结果,如果我想将结果保存在数组中我该做什么?
我想在IF语句中使用col1和col2中的值,这就是为什么我想把它们保存在数组中.
我想在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:
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(); } }
请注意,我推测第一列是一个字符串,第二列是一个整数.只是为了证明C#是类型安全的,以及如何使用DataReader.GetXY方法.