从数据库中选择特定记录 [英] Selecting a specific record from database

查看:104
本文介绍了从数据库中选择特定记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HI
我正在使用3层,现在我想通过在与
链接的文本框中检查projectID来显示项目特定问题的记录 我已经在bussinesObject(业务访问层)上尝试过此代码

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)

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.");
                //}
         
                
        }
            }



然后我想在Presentation层上然后在Gridview上显示



then of Presentation layer i want then to diplay on a Gridview

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();

    }


我该怎么办

[edit]已添加代码块-OriginalGriff [/edit]


how can i do this

[edit]Code block added - OriginalGriff[/edit]

推荐答案

我不确定这些代码是否正确

sqlcommand cmd ="select from from" tablename"where ProjectId =""+ Textbox.text +"";
I am not sure for these code is correct

sqlcommand cmd = "select * from "tablename" where ProjectId =''"+Textbox.text+"''";


您不会提及是否从数据库中获取了任何记录因此,建议您进行调试,以了解阅读器是否收到任何行.

另一件事是您在循环内创建新的Issue.因此,如果读者处理多行,则看起来问题中只有最后一行.
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.


这篇关于从数据库中选择特定记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆