C# 如何处理从静态函数返回的多变量类对象

C# 如何处理从静态函数返回的多变量类对象,c#,asp.net,class,C#,Asp.net,Class,我不知道如何处理从静态函数返回的多变量类对象 不能对对象使用foreach语句 如何从静态函数获取类对象数组 Default.aspx.cs 只需从方法返回List protected void Button1_Click(object sender, EventArgs e) { ID = TextBox1.Text; List<dataclass> returnedData = Getdata(ID); foreach (var dc in returne

我不知道如何处理从静态函数返回的多变量类对象

不能对对象使用
foreach
语句

如何从静态函数获取类对象数组

Default.aspx.cs

只需从方法返回
List

protected void Button1_Click(object sender, EventArgs e)
{
    ID = TextBox1.Text;
    List<dataclass> returnedData = Getdata(ID);
    foreach (var dc in returnedData)
    {
        // Do something with dc.idd, dc.datetime, dc.col1, dc.col2, dc.col3
    }

}

public static List<dataclass> Getdata(string ID)
{
    List<dataclass> returndata = new List<dataclass>();
    string connStr = ConfigurationManager.ConnectionStrings["jsonobject"].ConnectionString;
    string cmdStr = "SELECT ([idd],[datetime],[col1],[col2],[col3]) FROM [jsondata] WHERE [idd]=@idd;";
    using (SqlConnection conn = new SqlConnection(connStr))
    {
        using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
        {
            conn.Open();
            cmd.Parameters.AddWithValue("@idd", ID);
            using (SqlDataReader myReader = cmd.ExecuteReader())
            {
                if (myReader.Read())
                {
                    dataclass dc = new dataclass();
                    dc.idd = Convert.ToString(myReader["idd"]);
                    dc.datetime = Convert.ToString(myReader["datetime"]);
                    dc.col1 = Convert.ToString(myReader["col1"]);
                    dc.col2 = Convert.ToString(myReader["col2"]);
                    dc.col3 = Convert.ToString(myReader["col3"]);
                    returndata.Add(dc);
                }
            }
        }
    }

    return returndata;
}

它仍然返回空值。mdf拥有正确的数据。所有表都是正确的。请检查是否正在从数据库获取数据。使用断点并进行调试。然后您会遇到另一个问题。尝试在SQLServerManagementStudio(SSMS)中执行查询,并查看返回的内容。此外,使用调试器设置断点,并验证ID是否具有预期的值。另外,
idd
列的数据类型是什么?是否有任何方法可以在不使用foreach的情况下将returnedData转换为dataclass dc?
returnedData
已经是
dataclass
的列表。你需要把手伸进里面。您相信在
returnedData
中永远不会有多个
dataclass
实例吗?如果是这样,那么可以简化该方法。
public class dataclass
{
    public string idd { get; set; }
    public string datetime { get; set; }
    public string col1 { get; set; }
    public string col2 { get; set; }
    public string col3 { get; set; }
}
protected void Button1_Click(object sender, EventArgs e)
{
    ID = TextBox1.Text;
    List<dataclass> returnedData = Getdata(ID);
    foreach (var dc in returnedData)
    {
        // Do something with dc.idd, dc.datetime, dc.col1, dc.col2, dc.col3
    }

}

public static List<dataclass> Getdata(string ID)
{
    List<dataclass> returndata = new List<dataclass>();
    string connStr = ConfigurationManager.ConnectionStrings["jsonobject"].ConnectionString;
    string cmdStr = "SELECT ([idd],[datetime],[col1],[col2],[col3]) FROM [jsondata] WHERE [idd]=@idd;";
    using (SqlConnection conn = new SqlConnection(connStr))
    {
        using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
        {
            conn.Open();
            cmd.Parameters.AddWithValue("@idd", ID);
            using (SqlDataReader myReader = cmd.ExecuteReader())
            {
                if (myReader.Read())
                {
                    dataclass dc = new dataclass();
                    dc.idd = Convert.ToString(myReader["idd"]);
                    dc.datetime = Convert.ToString(myReader["datetime"]);
                    dc.col1 = Convert.ToString(myReader["col1"]);
                    dc.col2 = Convert.ToString(myReader["col2"]);
                    dc.col3 = Convert.ToString(myReader["col3"]);
                    returndata.Add(dc);
                }
            }
        }
    }

    return returndata;
}
protected void Button1_Click(object sender, EventArgs e)
{
    ID = TextBox1.Text;
    dataclass dc = Getdata(ID);
    if (dc != null)
    {
        // Do something with dc.idd, dc.datetime, dc.col1, dc.col2, dc.col3
    }
}

public static dataclass Getdata(string ID)
{
    string connStr = ConfigurationManager.ConnectionStrings["jsonobject"].ConnectionString;
    string cmdStr = "SELECT ([idd],[datetime],[col1],[col2],[col3]) FROM [jsondata] WHERE [idd]=@idd;";
    using (SqlConnection conn = new SqlConnection(connStr))
    {
        using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
        {
            conn.Open();
            cmd.Parameters.AddWithValue("@idd", ID);
            using (SqlDataReader myReader = cmd.ExecuteReader())
            {
                if (myReader.Read())
                {
                    dataclass dc = new dataclass();
                    dc.idd = Convert.ToString(myReader["idd"]);
                    dc.datetime = Convert.ToString(myReader["datetime"]);
                    dc.col1 = Convert.ToString(myReader["col1"]);
                    dc.col2 = Convert.ToString(myReader["col2"]);
                    dc.col3 = Convert.ToString(myReader["col3"]);
                    return dc;
                }
            }
        }
    }

    return null;
}