1

こんにちは、私は本当に混乱しています。最初に説明させてください。ノースウィンドからデータを取得しようとしています。注文テーブルの最初の列は OrderID で、2 番目の列は CustomerID です。

Console.Write(reader[0].ToString());

このように使用すると、期待どおりに値1248、1249、1250などを取得できます。しかし、以下のようにこの方法を使用すると.

                Console.Write(reader[0].ToString());
                Console.Write(" ----------------");
                Console.WriteLine(reader[1].ToString());

Orders からのデータは今回はまったく異なります。orders テーブルを確認すると、このデータが OrdersTable に属していないことがわかります。助けていただけますか?

           10779    Mork
           10780    Lilas  

これは完全なコードです

        string SQL = "SELECT * FROM Orders";

        SqlConnection conn = new SqlConnection(ConnectionString);
        SqlCommand cmd = new SqlCommand(SQL);
        cmd.Connection = conn;

        conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        try
        {
            while (reader.Read())
            {
               // Console.Write( reader.GetString(1).ToString());

                Console.Write(reader[0].ToString());
                Console.Write(" ----------------");
                Console.WriteLine(reader[1].ToString());

             //  Console.WriteLine("Customer:" + reader.GetString(1).ToString());

            }
            Console.ReadLine();
        }
        finally
        {
            reader.Close();
            conn.Close();
        } 
4

1 に答える 1

0
Console.Write(reader.GetString(0));
Console.Write(" ----------------");
Console.WriteLine(reader.GetString(1));

またはreader.GetInt32(n)、タイプが何であるかによって異なりますか?

各行の最初の 2 列の後にいると仮定しますか?

編集:最初に質問を間違って読んだと思います。このスキーマから Orders テーブルをクエリすると、序数位置 1、つまり 2 番目の列に名前が表示されると言っていますか?

このスキーマに基づいて、 vinet を検索し、このリンクを見たところ、投稿者がクエリを実行していることがわかるcustomerId == 'VINET'ので、表示されている結果は正しいと思われます。実行してみてください:

SELECT * FROM Orders WHERE CustomerID = 'VINET'
于 2013-08-09T17:53:11.147 に答える