从SQL一次获取一条记录

时间:2013-07-27 12:04:04

标签: c# asp.net .net

这是我用来显示数据库中的行的函数。默认值为级别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;
}
}

1 个答案:

答案 0 :(得分:0)

我不一定对你的问题有答案,但我确实有一些话题供你研究。

正如其他人建议的那样,研究将表单绑定到服务器端代码。如果MVC(我推荐),从视图到控制器的模型绑定是您需要关注的地方。

研究MVC。

研究对象关系映射 - 如果您喜欢.NET,请尝试实体框架5。

此外,请查看第三方数据网格和数据寻呼机。