Используйте SqlDataReader в F #
В C # я использую сценарии sql для добавления данных в список, где T будет классом с полями / свойствами, сопоставленными со сценарием sql.
Как я мог сделать это в F #? Эта часть использует хранимую процедуру стандартным способом.
using (conn)
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("dbo.query_here", conn))
{
cmd.CommandText = "dbo.query_here";
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandTimeout = 600;
cmd.Parameters.Add(new SqlParameter("@x1", Convert.ToString(x)));
cmd.Parameters.Add(new SqlParameter("@y1", y));
cmd.Parameters.Add(new SqlParameter("@z1", z));
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MyListOfClasses.Add(new MyDataClass(reader.GetInt32(reader.GetOrdinal("x"))
reader.GetDouble(reader.GetOrdinal("y")),
reader.GetDouble(reader.GetOrdinal("a")),
reader.GetDouble(reader.GetOrdinal("b"))));
}
reader.Close();
}
conn.Close();
Я понимаю, что F #, возможно, не так прост, как этот, но мне нужно аналогичным образом поместить эти данные в списки F #. Также предпочел бы предложения, которые не были функциональными по своей природе и следовали примеру, подобному коду C #.
В предыдущем потоке кто-то предлагал использовать записи, но это не было связано с SqlDataReader. Было бы предпочтительнее иметь список классов, чтобы я мог использовать методы получения и установки для каждого элемента.
Я должен добавить перед неизбежными комментариямипочему бы просто не использовать C # ", Конечно, я могу использовать C #, но я изучаю возможности написания алгоритмов на F # и для этого мне нужно получить исходные данные из SQL Server.