Solved

Read database but dont get all answers only first one

Posted on 2009-05-03
2
169 Views
Last Modified: 2012-05-06
Why do I only get the first answer in my sql statment from the database?

I know there are at least four CustomerID
public void ReadOrder(String customerid)

    {

        String myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\Documents and Settings\\MFL\\Dokumenter\\Visual Studio 2005\\WebSites\\WebSite\\WebSite\\Tenta1\\Nwind.mdb";

        OleDbConnection myConnection = new OleDbConnection(myConnectionString);

        string myInsertQuery = "SELECT * FROM Orders WHERE (CustomerID) ='" +customerid +"'";

        OleDbCommand myCommand = new OleDbCommand(myInsertQuery);

        myCommand.Connection = myConnection;

        myConnection.Open();

        OleDbDataReader rdr = myCommand.ExecuteReader();

        rdr.Read();
 

        if (rdr.HasRows)

        {

            Order temp = new Order();

            temp.OrderId = rdr[0].ToString();

            temp.Customer = rdr[1].ToString();

            temp.Employee = rdr[2].ToString();

            temp.OrderDate = rdr[3].ToString();

            temp.RequriedDate = rdr[4].ToString();

            temp.ShippingDate = rdr[5].ToString();

            temp.ShipVia = rdr[6].ToString();

            temp.Freight = rdr[7].ToString();

            temp.ShipName = rdr[8].ToString();

            temp.ShipAdress = rdr[9].ToString();

            temp.ShipCity = rdr[10].ToString();

            temp.ShipRegion = rdr[11].ToString();

            temp.ShipPostalCode = rdr[12].ToString();

            temp.ShipCountry = rdr[13].ToString();

            order.Add(temp);
 
 

            Response.Redirect("Uppgift3cc.aspx");

        }
 

        myConnection.Close();

    }

}

Open in new window

0
Comment
Question by:Mickeys
2 Comments
 
LVL 4

Accepted Solution

by:
cauos earned 300 total points
ID: 24290043
because you should add rdr.Read() to loop through all the result that come from the query

public void ReadOrder(String customerid)

    {

        String myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\Documents and Settings\\MFL\\Dokumenter\\Visual Studio 2005\\WebSites\\WebSite\\WebSite\\Tenta1\\Nwind.mdb";

        OleDbConnection myConnection = new OleDbConnection(myConnectionString);

        string myInsertQuery = "SELECT * FROM Orders WHERE (CustomerID) ='" +customerid +"'";

        OleDbCommand myCommand = new OleDbCommand(myInsertQuery);

        myCommand.Connection = myConnection;

        myConnection.Open();

        OleDbDataReader rdr = myCommand.ExecuteReader();

        while(rdr.Read())

        {

        if (rdr.HasRows)

        {

            Order temp = new Order();

            temp.OrderId = rdr[0].ToString();

            temp.Customer = rdr[1].ToString();

            temp.Employee = rdr[2].ToString();

            temp.OrderDate = rdr[3].ToString();

            temp.RequriedDate = rdr[4].ToString();

            temp.ShippingDate = rdr[5].ToString();

            temp.ShipVia = rdr[6].ToString();

            temp.Freight = rdr[7].ToString();

            temp.ShipName = rdr[8].ToString();

            temp.ShipAdress = rdr[9].ToString();

            temp.ShipCity = rdr[10].ToString();

            temp.ShipRegion = rdr[11].ToString();

            temp.ShipPostalCode = rdr[12].ToString();

            temp.ShipCountry = rdr[13].ToString();

            order.Add(temp);

 

 

            Response.Redirect("Uppgift3cc.aspx");

        }

        }

        myConnection.Close();

    }

}

Open in new window

0
 
LVL 9

Assisted Solution

by:tillgeffken
tillgeffken earned 200 total points
ID: 24290051
Cause you're not looping through the DataReader.

public void ReadOrder(String customerid)

    {

        String myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\Documents and Settings\\MFL\\Dokumenter\\Visual Studio 2005\\WebSites\\WebSite\\WebSite\\Tenta1\\Nwind.mdb";

        OleDbConnection myConnection = new OleDbConnection(myConnectionString);

        string myInsertQuery = "SELECT * FROM Orders WHERE (CustomerID) ='" +customerid +"'";

        OleDbCommand myCommand = new OleDbCommand(myInsertQuery);

        myCommand.Connection = myConnection;

        myConnection.Open();

        OleDbDataReader rdr = myCommand.ExecuteReader();

 

        if (rdr.HasRows)

        {

           while (dr.Read())

           {

            Order temp = new Order();

            temp.OrderId = rdr[0].ToString();

            temp.Customer = rdr[1].ToString();

            temp.Employee = rdr[2].ToString();

            temp.OrderDate = rdr[3].ToString();

            temp.RequriedDate = rdr[4].ToString();

            temp.ShippingDate = rdr[5].ToString();

            temp.ShipVia = rdr[6].ToString();

            temp.Freight = rdr[7].ToString();

            temp.ShipName = rdr[8].ToString();

            temp.ShipAdress = rdr[9].ToString();

            temp.ShipCity = rdr[10].ToString();

            temp.ShipRegion = rdr[11].ToString();

            temp.ShipPostalCode = rdr[12].ToString();

            temp.ShipCountry = rdr[13].ToString();

            order.Add(temp);

           }

 

            Response.Redirect("Uppgift3cc.aspx");

        }

 

        myConnection.Close();

    }

}

Open in new window

0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Confronted with some SQL you don't know can be a daunting task. It can be even more daunting if that SQL carries some of the old secret codes used in the Ye Olde query syntax, such as: (+)     as used in Oracle;     *=     =*    as used in Sybase …
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now