2017-01-26 197 views
0
public queue getQueueDataByID(int queueID) 
    { 


     string DBConnect = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; 

     SqlDataAdapter da; 
     DataSet ds = new DataSet(); 
     queue myQueue = new queue(); 

     StringBuilder sqlCommand = new StringBuilder(); 
     sqlCommand.AppendLine("Select * from QueueTable where"); 
     sqlCommand.AppendLine("id = @paraId"); 

     try 
     { 
      SqlConnection myConn = new SqlConnection(DBConnect); 

      // sqlCommand.Parameters.AddWithValue("paraCustId", tbCustId.Text); 
      da = new SqlDataAdapter(sqlCommand.ToString(), myConn); 
      da.SelectCommand.Parameters.AddWithValue("paraId", queueID); 
      // fill dataset 
      da.Fill(ds, "QueueTable"); 
      //conn.Close(); 
      int rec_cnt = ds.Tables["QueueTable"].Rows.Count; 
      DataRow row = ds.Tables["QueueTable"].Rows[rec_cnt-1 ]; 
      myQueue.queueNo = row["QueueNo"].ToString(); 
      myQueue.NRIC = row["NRIC"].ToString(); 
      myQueue.ContactNo = row["ContactNo"].ToString(); 

       } 

     catch (SqlException ex) 
     { 

     } 
     return myQueue; 
    } 

这是我的课最后一行中获得价值,我试图从数据库中检索在Web表单中显示的最后一排的DATAS,任何想法我怎么能做到这一点?我的“id”,主键被设置为自动增量。从SQL Server数据库C#

+0

这段代码抛出异常或不返回最后一排? – jjj

+0

嗨,谢谢你的回复,主要观点是,我不知道如何检索,或者更喜欢,我不知道在我的web表单中使用什么代码来检索。 – ShengisBored

+0

因为你需要绑定这个队列到web表单fields.Please参考http://stackoverflow.com/questions/18800566/how-to-bind-data-in-html-table-in-asp-net-web -form – jjj

回答

0

您可以使用数据表上的Linq来获取最后一行。

var queueDataTable = ds.Tables[0]; 
var lastDataRow = queueDataTable.AsEnumerable().Last(); 

如果需要通过所有行的数据表

foreach (var dataRow in queueDataTable.AsEnumerable()) 
{ 

} 

感谢中itterate

+0

嗨,谢谢你的回复 这听起来很愚蠢,但我应该把代码 – ShengisBored

+0

没问题。如果尚未使用返回数据集或数据表的公共方法,则需要将数据库访问代码封装在数据层类中。这应该被引用并由服务/笨拙层调用,该层根据返回的数据处理最后一行并填充Queue对象,最终将其返回给调用Web方法。您将进入设计领域,尽管这里不讨论这个问题。 – Wheels73

+0

太棒了。谢谢! – ShengisBored