복붙노트

[SQL] 한 셀의 값을 검색하기가 ExecuteReader () 메소드를 사용하는 방법

SQL

한 셀의 값을 검색하기가 ExecuteReader () 메소드를 사용하는 방법

나는 다음과 같은 명령을 실행하고 레이블에 결과를 전달해야합니다. 난 내가 리더를 사용하여 할 수있는 방법을 모르겠어요. 누군가가 나에게 손을 줄 수 있습니까?

String sql = "SELECT * FROM learer WHERE learer.id = " + index;
SqlCommand cmd = new SqlCommand(sql,conn);
learerLabel.Text = (String) cmd.ExecuteReader();

당신이 볼 수 있듯이 나는 SQL 문을 작성하고 나는 그것을 실행,하지만 작동하지 않습니다. 왜?

콘솔은 말한다 :

레이블이 제대로 표시 할 수 있도록 어떻게 내가 문자열로 원하는 결과를 얻을 수 있습니다.

해결법

  1. ==============================

    1.데이터베이스에서 하나의 값을 얻기 위해 DataReader를하고 Command.ExecuteReader를 사용하지 않는 것이 좋습니다. 대신 다음과 같은 Command.ExecuteScalar을 사용한다 :

    데이터베이스에서 하나의 값을 얻기 위해 DataReader를하고 Command.ExecuteReader를 사용하지 않는 것이 좋습니다. 대신 다음과 같은 Command.ExecuteScalar을 사용한다 :

    String sql = "SELECT ColumnNumber FROM learer WHERE learer.id = " + index;
    SqlCommand cmd = new SqlCommand(sql,conn);
    learerLabel.Text = (String) cmd.ExecuteScalar();
    

    다음은 데이터베이스에 연결하고 데이터를 관리하는 방법에 대한 자세한 내용입니다.

  2. ==============================

    2.

    using (var conn = new SqlConnection(SomeConnectionString))
    using (var cmd = conn.CreateCommand())
    {
        conn.Open();
        cmd.CommandText = "SELECT * FROM learer WHERE id = @id";
        cmd.Parameters.AddWithValue("@id", index);
        using (var reader = cmd.ExecuteReader())
        {
            if (reader.Read())
            {
                learerLabel.Text = reader.GetString(reader.GetOrdinal("somecolumn"))
            }
        }
    }
    
  3. ==============================

    3.ExecuteScalar는 ()는 당신이 여기에서 필요로하는 무슨이다

    ExecuteScalar는 ()는 당신이 여기에서 필요로하는 무슨이다

  4. ==============================

    4.기본적으로 () 대신 ExecuteScalar는를 사용 말한다 중복 질문입니다.

    기본적으로 () 대신 ExecuteScalar는를 사용 말한다 중복 질문입니다.

  5. from https://stackoverflow.com/questions/5794529/how-to-use-executereader-method-to-retrieve-the-value-of-just-one-cell by cc-by-sa and MIT license