如何从SQL数据库检索多列?

问题描述 投票:-2回答:2

我正在尝试以这种方式获取两列详细信息:

    public string GetData()
    {

        using (SqlConnection con = new SqlConnection(this.Connection))
        {
            con.Open();

            SqlCommand command = new SqlCommand("Select TITTLE,VALUE from T_PROJECTS ", con);



            // int result = command.ExecuteNonQuery();
            using (SqlDataReader reader = command.ExecuteReader())
            {
                reader.Read();
                return reader["TITTLE,VALUE"]?.ToString();
            }

        }
    }

我该怎么做?

c# sql
2个回答
1
投票

例如,您需要具有要检索的自定义类的列,

 public class Project
        {
          public int Title { get; set; }
          public string Value { get; set; }         
        }

然后像这样,

 public Project GetData()
    {

        using (SqlConnection con = new SqlConnection(this.Connection))
        {
            con.Open();
            SqlCommand command = new SqlCommand("Select TITTLE,VALUE from T_PROJECTS ", con);
            Project proObj = new Project();            
            using (SqlDataReader reader = command.ExecuteReader())
            {
                reader.Read();
                proObj.Title = reader["TITTLE"].ToString();
                proObj.Value = reader["VALUE"].ToString();
            }

        }
     return proObj;
    }

1
投票

您也可以返回一个元组,尽管我认为自定义类是一个更好的解决方案。 -> https://msdn.microsoft.com/en-us/library/system.tuple(v=vs.110).aspx

public IEnumerable<Tuple<string,string>> GetData()
{
    List<Tuple<string,string> results = new List<Tuple<string,string>>();
    using (SqlConnection con = new SqlConnection(this.Connection))
    {
        con.Open();
        SqlCommand command = new SqlCommand("Select TITTLE,VALUE from T_PROJECTS ", con);
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while(reader.Read())
                results.add(new Tuple<string,string>(reader["TITLE"].ToString(),reader["VALUE"].ToString()));
        }
        return results;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.