이전 webforms 애플리케이션의 일부를 다시 쓰고 있습니다. select 쿼리를 수행하는 함수를 만들고 싶습니다. SQL 쿼리와 매개 변수를 제공하고 나머지는 수행합니다.MySqlDataReader를 변수에 저장하십시오.
지금까지 나는이있다 :
는MySqlDataReader DoRead(string query, params MySqlParameter[] pms)
{
MySqlCommand myCommand;
if (!myConnection)
myConnection = new MySqlConnection(sCon);
if (myConnection.State != ConnectionState.Open)
{
myConnection.Close();
myConnection.Open();
}
myCommand = myConnection.CreateCommand();
myCommand.CommandText = query;
foreach (MySqlParameter p in pms)
{
myCommand.Parameters.Add(p);
}
return myReader = myCommand.ExecuteReader();
}
내 질문에 난 그냥 내가 바로 연결 및 독자를 닫을 수있는 변수에 myReader
의 결과를 저장하는 대신 myReader
의 같은 변수를 반환 할 수있다 이 함수 대신에 메인 코드에?
물론 가능합니다. 결과 집합을 DataTable에 저장하고 대신 해당 DataTable을 반환 할 수 있습니다. 이와 함께 위의 게시 된 코드에서 논리적 인 실수는 거의 없습니다. – Rahul
짧은 대답 : 예. 리더로부터 모든 데이터를'DataTable' 또는'List'로 읽어 들이고 연결을 닫고 그 데이터 테이블이나리스트를 반환하면됩니다. 그러나 노트 - 당신은 datareader 자체를 저장하지 말고, 데이터를 읽고 저장해야합니다. –