친구, 동적 SQL 쿼리를 실행하고 목록을 반환합니다. goole에 대한 대부분의 인터넷 검색에서 목록 형식이 sqldatareader를 목록으로 변환해야한다는 것을 알았습니다. 어떤 쿼리를 실행할 지 모를 때 어떻게 할 수 있습니까?동적 쿼리로 인해 SqlDataReader를 알 수없는 형식의 목록으로 변환합니다.
Execute(String query)
{
SqlConnection con=new SqlConnection(connection);//connection from elsewhere
SqlCommand cmd = new SqlCommand(query);
cmd.connection=con;
con.Open();
SqlDataReader result=cmd.ExecuteReader();
//How to convert result to a list when i do not know the table structure
}
이제 결과를 목록으로 변환하고 싶습니다. 그러나 쿼리가 작동하는 테이블의 세부 사항을 알지 못합니다. 쿼리가 다를 수 있으며 테이블을 쿼리 할 수 있습니다. 이러한 조건에서 어떻게 결과를리스트로 변환 할 수 있습니까? 가능한가?
이것은 테이블 세부 사항을 모르는 경우 하나의 간단한 질문으로 남겨 둡니다. 그러면 목록의 항목은 무엇이 될지 아니면 무엇이 목록일까요?
그 질문에 대답하기 위해 나는 각 목록 항목이 SqlDataReader 결과의 한 행에 해당하는 목록을 가질 수 있습니까?
List < DataRow> x = result.Select(). ToList()를 사용할 수 있지만 사용하고 싶지 않습니다.
목록의 각 항목을 결과의 각 행에 매핑하고 동시에 행을 만드는 원자 데이터 유형으로 구성해야합니다.
예 : 학생 이름 선택, studentid의 studentid; 이것은 SqlDataReader 결과를 반환하고 형식에 문자열과 int가 포함 된 목록을 구성한 다음 목록에 결과 행을 채 웁니다.
쿼리 studentid = 1432, 그때 내가 유형이 INT, 문자열, 문자가 포함 된 목록을 구성하고, 결과의 행 목록을 채우려 선택 마크, 마크에서 대상 학년으로 변경하는 경우 .
할 방법이 있습니까?
추신 : 사용자가 쿼리를 만들었고 예상되는 열의 수를 알고 있기 때문에 사용자가 위와 같이 목록을 반환하면 값을 선택하는 방법을 알고 있습니다.
당신은 SqlTableAdapter를 사용할 수없는 이유는 무엇입니까?당신은 결과의 스키마 인 DataRow의 모음을 얻을 것입니다. –