"SELECT name, city, FROM People"쿼리를 호출한다고 가정합니다. 일단 내 SqlDataReader를 실행하면 열은 내 SQL 쿼리에서와 같은 순서로 나타 납니까? 즉SqlDataReader 열 서수
나는 다음과 같은 코드가 항상 제대로 작동합니다 의존하고 있습니다 : 나는 열 대신 서수의 이름을 사용하는 경우 또한
SqlConnection connection = new SqlConnection(MyConnectionString);
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "SELECT [name], [city], [country] WHERE [id] = @id";
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader(System.Data.CommandBehavior.SingleRow);
if (reader.Read())
{
// Read values.
name = reader[0].ToString();
city = reader[1].ToString();
country = reader[2].ToString();
}
}
catch (Exception)
{
throw;
}
finally
{
connection.Close();
}
얼마나 성능 잃을 않는다 (독자 [ "이름"])?
SqlDataReader의 열 순서 동작을 설명하는 공식적인 Microsoft 문서가 있습니까?
안녕하세요. Josh. 신속한 회신에 감사드립니다. 그래서이 동작을 보장하고 그것에 의존해야합니까, 아니면 열 이름을 사용하는 것이 더 좋을까요? PS - GetOrdinal의 경우 단일 행 만 검색하므로 내 경우에는 유용하지 않다고 생각합니다. – niaher
예, SqlDataReader를 사용하여 단 몇 년 만에 백업 할 수있는 하드 코어 증거가 없지만 동작이 보장됩니다. 나는 보통 열 이름이 1 열 또는 2 열만있는 경우가 아니라면 열 이름을 사용합니다. – Josh
하지만 실제로 나는 reader [0], reader [1] 등을 사용하지 않습니다. reader.GetString (0), reader.GetString (1) 등을 사용합니다. – Josh