这是我用来显示数据库中的行的函数。默认值为级别1,SID 1.如果用户从下拉列表中选择,级别可以更改,但ID保持不变,因为我不知道该怎么做。我想一次获得一条记录,但是当我按下下一个按钮时,我想获得所选级别的下一行。如果可以的话,你能给我一些如何做到的提示吗?提前谢谢。
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;
}
}
答案 0 :(得分:0)
我不一定对你的问题有答案,但我确实有一些话题供你研究。
正如其他人建议的那样,研究将表单绑定到服务器端代码。如果MVC(我推荐),从视图到控制器的模型绑定是您需要关注的地方。
研究MVC。
研究对象关系映射 - 如果您喜欢.NET,请尝试实体框架5。
此外,请查看第三方数据网格和数据寻呼机。