Click here to Skip to main content
15,892,927 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
HI
I am using 3 tier and now i want to display records of a specific Issues of a project by checking it projectID on textbox that they link with
i have tried this code on bussinesObject(Business Acess layer)
C#
public Issues SelecSpecifictIssues(int ProjectID)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
               
                    SqlCommand cmd = new SqlCommand("procSelectIssuesByID", conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    Issues issue = null;
                    cmd.Parameters.Add(new SqlParameter("@projectRef ", SqlDbType.Int));
                    cmd.Parameters["@projectRef "].Value = ProjectID;

                    
                       conn.Open();
                    SqlDataReader reader = cmd.ExecuteReader();          

                    while (reader.Read())
                    {
                        
                           
                           Issues issues = new Issues(Convert.ToInt32(reader["issuesID"]),
                            Convert.ToString(reader["issuesDescription"]),
                            Convert.ToInt32(reader["issuesProbability"]),
                            Convert.ToInt32(reader["issuesImpact"]),
                            Convert.ToInt32(reader["issuesRating"]),
                            Convert.ToString(reader["issuesMitigationPlan"]),
                            Convert.ToString(reader["issuesOwner"]),
                            Convert.ToString(reader["issuesOpenedBy"]),
                            Convert.ToString(reader["issuesStatus"]),
                            Convert.ToString(reader["issuesDateOpened"]),
                            Convert.ToString(reader["issuesComments"]),
                            Convert.ToString(reader["issuesSeverity"]),
                            Convert.ToString(reader["issuesType"]),
                            Convert.ToString(reader["issuesDateClosed"]),
                            Convert.ToInt32(reader["projectRef"]));
                         
                    }

                    reader.Close();
                    conn.Close();
                    return issue; 

              
                //catch (SqlException)
                //{

                //    ///   throw new ApplicationException("Error reading data from the database.");
                //}
         
                
        }
            }


then of Presentation layer i want then to diplay on a Gridview
C#
public void Selectallissues()
    {
        
        Issues projectList; 
        int counter = 0;
        projectList = bo.SelecSpecifictIssues(int.Parse(txtID.Text));
        
        txtcheck.Text = projectList.IssuesDescription;
        DataTable empTable = new DataTable();
        DataColumn colissuesID = new DataColumn("issuesID", typeof(int));
        DataColumn colissuesDescription = new DataColumn("issuesDescription", typeof(string));
        DataColumn colnumber = new DataColumn("issuesSeverity", typeof(string));

        DataColumn colissuesProbability = new DataColumn("issuesProbability", typeof(string));
        DataColumn colissuesMitigationPlan = new DataColumn("issuesMitigationPlan", typeof(string));
        DataColumn colissuesRating = new DataColumn("issuesRating", typeof(string));
        DataColumn colissuesDateOpened = new DataColumn("issuesDateOpened", typeof(string));
        DataColumn colissuesDateClosed = new DataColumn("issuesDateClosed", typeof(string));

        empTable.Columns.Add(colissuesID);
        empTable.Columns.Add(colissuesDescription);
        empTable.Columns.Add(colnumber);

        empTable.Columns.Add(colissuesProbability);
        empTable.Columns.Add(colissuesMitigationPlan);
        empTable.Columns.Add(colissuesRating);
        empTable.Columns.Add(colissuesDateOpened);
        empTable.Columns.Add(colissuesDateClosed);

        //foreach (Issues item in projectList)
        //{
        //    DataRow row = empTable.NewRow();
        //    row["issuesID"] = projectList.IssuesID;
        //    row["issuesDescription"] = projectList[counter].IssuesDescription;
        //    row["issuesProbability"] = projectList[counter].IssuesProbability;

        //    row["issuesMitigationPlan"] = projectList[counter].IssuesMitigationPlan;
        //    //row["Date Of Birth"] = employeeList[counter].DateOfBirth.ToString();
        //    row["issuesDateOpened"] = string.Format("{0:dd MM yyyy}", (projectList[counter].IssuesDateOpened));
        //    row["issuesDateClosed"] = projectList[counter].IssuesDateClosed;
        //    row["issuesRating"] = projectList[counter].IssuesRating;
        //    row["issuesSeverity"] = projectList[counter].IssuesSeverity;

        //    w DataTable();
        //DataColumn colissuesIDempTable.Rows.Add(row);
        //    counter++;
        //}
        //RadGrid6.DataSource = empTable;
        //RadGrid6.DataBind();

    }

how can i do this

[edit]Code block added - OriginalGriff[/edit]
Posted
Updated 9-May-12 10:01am
v3
Comments
Sandeep Mewara 9-May-12 11:32am    
You forgot to mention the query used in SP: procSelectIssuesByID

Update the question with SP so that we can comment on the same.

I am not sure for these code is correct

sqlcommand cmd = "select * from "tablename" where ProjectId ='"+Textbox.text+"'";
 
Share this answer
 
Comments
Sandeep Mewara 9-May-12 11:30am    
I would not suggest this as it is open for SQL Injection. OP is already using Parameters and it is the right way.
Sandeep Mewara 9-May-12 11:33am    
BTW, how does this answer helps any way? OP is using SP and you are suggesting to use SQL Query that too in a bad way.
You don't mention if you get any records from the database so I'd suggest that you debug to see if the reader receives any rows.

Another thing is that you create new Issues inside a loop. So if the reader handles several rows it looks like only the last one is in the Issues.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900