2

データベーステーブルから最新のデータを取得しようとしています。max(columnName)を使用していますが、好みの結果が得られていません。値の代わりに列名を取得し続けます

これで私を助けてください...

最大値を取得するためのコードは次のようになります

            dbConnection dbCon = new dbConnection();
            con = dbCon.doConnection();

            SqlCommand cmd = new SqlCommand();


            String query = "select max(studentNo) from studentInfo;";
            cmd.Connection = con;
            cmd.CommandText = query;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            { 
                String x=reader["studentNo"].ToString();

            }

ここで、studentNoは、値を抽出する必要がある列名であり、アプリケーションで文字列xを出力している間は、int型であり、値の代わりにstudentNoを取得します。コードに問題が見つからないため、問題を解決するための手がかりが不足しています。これで私を助けてください

4

4 に答える 4

3

クエリは 1 行と 1 列のデータを出力するため、ExecuteScalar()代わりにExecuteReader()次のものを使用することを検討してください。

dbConnection dbCon = new dbConnection();
con = dbCon.doConnection();

SqlCommand cmd = new SqlCommand();


String query = "select max(studentNo) from studentInfo;";
cmd.Connection = con;
cmd.CommandText = query;
String x = cmd.ExecuteScalar().ToString();
于 2012-05-28T08:48:23.113 に答える
3

問題は、値にアクセスする方法にあります。ここで 2 つのことを変更できます。インデックスでリーダーにアクセスするか、クエリで列に適切な名前を付けます。

select max(studentNo) as StudentNo from studentInfo;
于 2012-05-28T08:26:04.623 に答える
1

集計関数を適用した後、選択にエイリアスを与える必要があります

つまり、studentInfo から NO として max(studentNo) を選択します。

そして読みながら

String x=reader["NO"].ToString();

于 2012-05-28T08:34:51.430 に答える
0

まず、列に正しいエイリアスを設定する必要があります。

select max(studentNo) as 'studentNo' from studentInfo;

次に、データベースをテーブルに割り当てることができます。

select max(studentNo) as studentNo from databaseName..studentInfo;
于 2012-05-28T08:32:15.513 に答える