這是我用來顯示數據庫中的行的函數。默認值是級別1,SID 1.如果用戶從下拉列表中選擇,級別可以改變,但ID保持不變,因爲我不知道該在這裏做什麼。我希望一次獲得一條記錄,但是當我按下下一個按鈕時,我希望獲得具有選定級別的下一行。如果可能的話,你可以給我一些關於如何做到這一點的提示嗎?先謝謝你。從SQL中一次獲取一條記錄
public void FillPageSpelling()
{
ArrayList videoList1 = new ArrayList();
if (!IsPostBack)
{
videoList1 = ConnectionClass.GetSpelling(1,1);
}
else
{
int i = Convert.ToInt32(DropDownList1.SelectedValue);
videoList1 = ConnectionClass.GetSpelling(i,1);
}
StringBuilder sb = new StringBuilder();
foreach (Spelling sp in videoList1)
{
sb.Append(
string.Format(
@"<table class='VideoTable'>
<tr>
<td align='center'>
<font face='Verdana'>
<input type=text style=display:none id=TextBox3 value={0}>
</td>
</tr>
<tr>
<td align='center'>
<font face='Verdana'>
<font size='3'>Level:</font>
<font size='2'>{3}</font>
</font>
</td>
</tr>
<tr>
<td align='center'>
<font face='Verdana'>
<font size='3'>Sentence:</font>
<font size='2'>{1}</font>
</font>
</td>
</tr>
<tr>
<td align='center'>
<font size='3'>Sound: <audio controls><source src=sound/{2}></audio>
<font face='Verdana'>
<font size='2'></font>
</font>
</td>
</tr>
<tr>
<tr>
<td align='center'>
<font face='Verdana'>
<font size='3'>Write the word here: <input type=text id=TextBox1>
</font>
</font>
</td>
</tr>
<td>
<input type=button value='Check' class='p-userButton' onClick='ButtonClick(document.getElementById(""TextBox1"").value, document.getElementById(""TextBox2"").value);'/>
</td>
<td>
<input type=button value='Cheat' class='p-userButton' onClick='Cheat(document.getElementById(""TextBox2"").value);'
</td>
<td>
<input type=button value='Next' class='p-userButton'
</td>
</tr>
<tr>
<td align='center'>
<font face='Verdana'>
<input type=text style=display:none id=TextBox2 value={4}>
</td>
</tr>
</br>
</table>", sp.SID, sp.Sentence, sp.Audio, sp.Level, sp.Word));
lblOutput.Text = sb.ToString();
}
}
這裏是返回基於水平和ID一個記錄的方法:
public static ArrayList GetSpelling(int level, int sid)
{
ArrayList list = new ArrayList();
string query = string.Format("SELECT * FROM Spelling WHERE Level LIKE '{0}' and SID LIKE '{1}'", level, sid);
try
{
conn.Open();
command.CommandText = query;
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
int SID = reader.GetInt32(0);
string Sentence = reader.GetString(1);
string Word = reader.GetString(2);
int Level = reader.GetInt32(3);
string Audio = reader.GetString(4);
Spelling lst = new Spelling(SID, Sentence, Word, Level, Audio);
list.Add(lst);
}
}
finally
{
conn.Close();
}
return list;
}
}
ohh不,代碼...只是傷害了我的眼睛...不能看它! – balexandre
@balexandre,使其更好的任何提示? – user2457767
你的表代碼很討厭。你正在使用''標籤!可怕的東西,有些甚至是多餘的。考慮改變CSS。您還有一些未封閉的標籤。特別值得一提的是你的'Check','Cheat','Next'輸入。我會解決這個問題,它可能沒有幫助。還應引用表格元素中的所有屬性值。 ''not'' – Scott