簡體   English   中英

C#SqlDataReader重復最后一行數據

[英]c# SqlDataReader repeating final row of data

我正在使用SqlDataReader讀取自定義類型的集合,但我得到的只是重復的DataTable的最后一行,而不是完整的信息表。 非常感謝您的幫助。

using (connection)
        {

            using (SqlCommand command = new SqlCommand(query, connection))
            {
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        lineData.Column1 = reader.GetValue(0).ToString();
                        lineData.Column2 = reader.GetValue(1).ToString();
                        lineData.Column3 = reader.GetValue(2).ToString();
                        lineData.Column4 = reader.GetValue(3).ToString();
                        lineData.Column5 = reader.GetValue(4).ToString();
                        lineData.Column6 = reader.GetValue(5).ToString();
                        lineData.Column7 = reader.GetValue(6).ToString();
                        lineData.Column8 = reader.GetValue(7).ToString();
                        columnData.Add(lineData);
                    }
                }
            }
        }

 foreach (var item in columnData)
        {
            Label.Text += item.Column1.ToString() + item.Column2.ToString() + item.Column3.ToString() + item.Column7.ToString();
        }

lineData應該在while循環中聲明。 如果在上載代碼之前聲明了該實例,則每個數據行都引用相同的實例。 嘗試將代碼更改為以下內容;

while (reader.Read())
                {
                    lineData = new LineData();//like that

lineData必須在該周期的那個時候聲明。 如果在您上傳的代碼之前聲明了它,則您將對每行數據使用相同的實例。 嘗試更改以下代碼;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM