C#에서 데이터 리더로 행을 순환하려면 어떻게 해야 합니까?
사용할 수 있습니다.while(dr.Read()){...}
내 표에 있는 모든 필드를 순환시킵니다. 첫 번째 행에서 모든 값을 검색하고, 두 번째 행에서...등등.
이런 테이블이 있다고 가정해 보겠습니다.
ID--------------Value1--------------Value2------------------Value3
1 hello hello2 hello3
2 hi1 hi2 hi3
먼저 얻고 싶은 것은hello
,hello2
그리고.hello3
그런 다음 두 번째 행으로 이동하여 모든 값을 가져옵니다.
이것을 달성할 수 있는 방법이 있습니까?누가 내 말을 이해해 줬으면 좋겠어요.
정말 죄송합니다, 이제 해결되었습니다.제가 코딩을 잘못해서...
SqlDataReader도 마찬가지입니다.Read() 메서드는 해야 할 일을 수행합니다. 다시 한 번 실수는 제가 한 것입니다.
그게 바로 그 방법입니다.DataReader
작동합니다. 데이터베이스 행을 한 번에 하나씩 읽도록 설계되었습니다.
while(reader.Read())
{
var value1 = reader.GetValue(0); // On first iteration will be hello
var value2 = reader.GetValue(1); // On first iteration will be hello2
var value3 = reader.GetValue(2); // On first iteration will be hello3
}
int count = reader.FieldCount;
while(reader.Read()) {
for(int i = 0 ; i < count ; i++) {
Console.WriteLine(reader.GetValue(i));
}
}
참고. 그리드가 여러 개인 경우 다음을 수행합니다.
do {
int count = reader.FieldCount;
while(reader.Read()) {
for(int i = 0 ; i < count ; i++) {
Console.WriteLine(reader.GetValue(i));
}
}
} while (reader.NextResult())
또는 이름으로 직접 열에 액세스할 수 있습니다.
while(dr.Read())
{
string col1 = (string)dr["Value1"];
string col2 = (string)dr["Value2"];
string col3 = (string)dr["Value3"];
}
"전체 행"을 한 번에 가져올 방법은 없습니다. 행을 반복해서 표시해야 하며 각 행에 대해 각 열을 개별적으로 읽어야 합니다.
using(SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
string value1 = rdr.GetString(0);
string value2 = rdr.GetString(1);
string value3 = rdr.GetString(2);
}
}
각 행에 대해 읽은 문자열을 사용하여 수행하는 작업은 전적으로 사용자에게 달려 있습니다. 사용자가 정의한 클래스로 저장할 수도 있습니다.
C#에서 데이터 리더로 행을 순환하려면 어떻게 해야 합니까?
IDataReader.Read()
판독기를 결과 집합의 다음 행으로 이동합니다.
while(reader.Read()){
/* do whatever you'd like to do for each row. */
}
따라서 루프의 각 반복에 대해 다른 루프를 수행합니다. 0에서reader.FieldCount
와 콜reader.GetValue(i)
각 분야별
더 큰 문제는 그 데이터를 보관하기 위해 어떤 종류의 구조를 사용할 것인가 하는 것입니다.
사실은Read
결과 집합의 레코드에 대해 반복하는 메서드입니다.당신의 경우 - 테이블 위 행입니다.그래서 당신은 여전히 그것을 사용할 수 있습니다.
while (dr.Read())
{
for (int i = 0; i < dr.FieldCount; i++)
{
subjob.Items.Add(dr[i]);
}
}
한 열의 행을 읽다
데이터 테이블에 다음 열이 있다고 가정하고 이 코드를 사용해 보십시오.
DataTable dt =new DataTable();
txtTGrossWt.Text = dt.Compute("sum(fldGrossWeight)", "").ToString() == "" ? "0" : dt.Compute("sum(fldGrossWeight)", "").ToString();
txtTOtherWt.Text = dt.Compute("sum(fldOtherWeight)", "").ToString() == "" ? "0" : dt.Compute("sum(fldOtherWeight)", "").ToString();
txtTNetWt.Text = dt.Compute("sum(fldNetWeight)", "").ToString() == "" ? "0" : dt.Compute("sum(fldNetWeight)", "").ToString();
txtFinalValue.Text = dt.Compute("sum(fldValue)", "").ToString() == "" ? "0" : dt.Compute("sum(fldValue)", "").ToString();
언급URL : https://stackoverflow.com/questions/8370927/how-do-i-loop-through-rows-with-a-data-reader-in-c
'IT' 카테고리의 다른 글
c# 및 excel 자동화 - 실행 중인 인스턴스 종료 (0) | 2023.08.21 |
---|---|
iPhone/iPad 사용자에 대해 :hover 유사 클래스를 강제로 무시할 수 있습니까? (0) | 2023.08.21 |
XML을 통한 원형 이미지 보기 (0) | 2023.08.21 |
Android 플랫폼에서 푸시 알림 (0) | 2023.08.21 |
mariadbgssapi를 사용하여 php의 DB에 연결할 수 없습니다. 클라이언트에서 인증 방법을 알 수 없습니다. (0) | 2023.08.21 |