2010-08-20 53 views
0

我試圖從DATABSE獲得價值和使用下面的線將其分配到標籤:ASP.NET控件C#

lblQuestion.Text = ds.Tables[0].Rows[0]["Question"].ToString(); 

但它作爲指定標籤。

  if (ds.Tables[0].Rows.Count > 0) 
      { 
       lblQuestion.Text = ds.Tables[0].Rows[0]["Question"].ToString(); ; 
      } 
+6

不知道你的意思「但它作爲指定標籤」的東西。你能澄清一下嗎? – 2010-08-20 17:34:28

回答

1

更新 - 刪除了我,現在你已經包含了代碼的最後信息....

你有沒有通過您的代碼加強,以查看是否有任何數據返回?

AKA - 是ds.Tables[0].Rows.Count > 0?你也在做!Page.IsPostBack。這隻會調用代碼並加載您的標籤,如果它在第一次加載....後續加載呢?該標籤會返回到任何他們在設計師默認爲.....

+0

ToString()不會返回列的ColumnName屬性,因爲'.Rows [0] [「Question」]使用索引器來獲取表中第一條記錄的Question列的值。 – Rob 2010-08-20 18:21:41

+0

這是正確的。感謝您的澄清.... :-) – klabranche 2010-08-20 18:43:08

1

我已經把一個測試用例在一個web應用程序如下:

ASPX代碼背後:

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     var ds = new DataSet(); 
     var table = new DataTable(); 
     table.Columns.Add("Question", typeof(string)); 
     table.Rows.Add(new object[] { "This is the question" }); 

     ds.Tables.Add(table); 

     lblQuestion.Text = ds.Tables[0].Rows[0]["Question"].ToString(); 
    } 
} 

ASPX頁面:

<form id="form1" runat="server"> 
<div> 
    <asp:Label runat="server" ID="lblQuestion"></asp:Label> 
</div> 
</form> 

這個正確呈現出如:

<div> 
    <span id="lblQuestion">This is the question</span> 
</div> 

您確定您向我們展示了實際運行的代碼嗎?

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     //if (Request.QueryString["QID"] != null) 
     //{ 
     // Response.Write(Request.QueryString["QID"].ToString()); 
     //} 
     if (!Page.IsPostBack) 
     { 
      int i = Convert.ToInt32(Request.QueryString["QID"]); 
      // Response.Write(i); 
      eTutorService ServiceProvider = new eTutorService(); 
      DataSet ds = new DataSet(); 
      ds = ServiceProvider.GetQuestionView(i); 
      if (ds.Tables[0].Rows.Count > 0) 
      { 
       lblQuestion.Text = ds.Tables[0].Rows[0]["Question"].ToString(); ; 
       lblOption1.Text = ds.Tables[0].Rows[0]["Option1"].ToString(); 
       lblOption2.Text = ds.Tables[0].Rows[0]["Option2"].ToString(); 
       lblOption3.Text = ds.Tables[0].Rows[0]["Option3"].ToString(); 
       lblOption4.Text = ds.Tables[0].Rows[0]["Option4"].ToString(); 
       lblCorrectOption.Text = ds.Tables[0].Rows[0]["CorrectAnswer"].ToString(); 
       lblPaper.Text = ds.Tables[0].Rows[0]["subject"].ToString(); 
       lblDifficultyLevel.Text = ds.Tables[0].Rows[0]["LEVEL_NAME"].ToString(); 
       lblquestionOrder.Text = ds.Tables[0].Rows[0]["QuestionOrder"].ToString(); 
      } 
     } 


     } 

它只是把標籤而不是把數據庫的價值標籤

+0

下一次只是把代碼放在你最初的問題,而不是添加爲答案.... :-) – klabranche 2010-08-20 18:46:57