我試圖從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(); ;
}
我試圖從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(); ;
}
更新 - 刪除了我,現在你已經包含了代碼的最後信息....
你有沒有通過您的代碼加強,以查看是否有任何數據返回?
AKA - 是ds.Tables[0].Rows.Count > 0
?你也在做!Page.IsPostBack
。這隻會調用代碼並加載您的標籤,如果它在第一次加載....後續加載呢?該標籤會返回到任何他們在設計師默認爲.....
ToString()不會返回列的ColumnName屬性,因爲'.Rows [0] [「Question」]使用索引器來獲取表中第一條記錄的Question列的值。 – Rob 2010-08-20 18:21:41
這是正確的。感謝您的澄清.... :-) – klabranche 2010-08-20 18:43:08
我已經把一個測試用例在一個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>
您確定您向我們展示了實際運行的代碼嗎?
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();
}
}
}
它只是把標籤而不是把數據庫的價值標籤
下一次只是把代碼放在你最初的問題,而不是添加爲答案.... :-) – klabranche 2010-08-20 18:46:57
不知道你的意思「但它作爲指定標籤」的東西。你能澄清一下嗎? – 2010-08-20 17:34:28