Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Read database but dont get all answers only first one

Posted on 2009-05-03
2
171 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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
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.
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

791 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