使用c从SQL数据库中检索多个列

时间:2016-09-16 05:58:38

标签: c# sql

尝试以这种方式获取两个列详细信息可以检查我的代码数据读取部分有什么问题吗?我如何读取多列

    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();
            }

        }
    }

2 个答案:

答案 0 :(得分:0)

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

 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 :(得分:0)

你也可以返回一个元组,虽然我觉得自定义类是一个更好的解决方案。 - > 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;
    }
}