none
C#2003中编写通讯录但添加上一条按钮却不能起作用 RRS feed

  • 问题

  • 在查看通讯录的记录中,分别有下一条跟上一条按钮,下一条按钮功能已经实现了,但是上一条的按钮的功能却没有办法实现,有哪些高手可以帮我看看的,以下是我写的上一条代码
    private void button6_Click(object sender, System.EventArgs e)
    {
    int i;
    try
    {
    string myConstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=通讯录.
    mdb;";//创建连接字符串
    OleDbConnection myCon=new OleDbConnection(myConstr);//创建一个连接对象
    myCon.Open();//打开连接
    OleDbCommand myCom=new OleDbCommand();//创建对象
    myCom.CommandType=CommandType.Text;//指定使用SQL语句
    string myComstr="Select * from 通讯录表 order by i1";
    myCom.CommandText=myComstr;//获取对数据源执行的sql语句
    myCom.Connection=myCon;//连接对象
    DataSet ds=new DataSet();
    OleDbDataAdapter da=new OleDbDataAdapter(myCom);
    da.Fill(ds,"通讯录表");
    i=Convert.ToInt32(textBox5.Text);
    if(i>=1&&i<ds.Tables["通讯录表"].Rows.Count)
    {
    textBox1.Text=ds.Tables["通讯录表"].Rows[i]["Name1"].ToString();
    textBox2.Text=ds.Tables["通讯录表"].Rows[i]["Adress1"].ToString();
    textBox3.Text=ds.Tables["通讯录表"].Rows[i]["Tele1"].ToString();
    textBox4.Text=ds.Tables["通讯录表"].Rows[i]["Email1"].ToString();
    textBox5.Text=ds.Tables["通讯录表"].Rows[i]["i1"].ToString();
    i--;
    }
    else
    {
    MessageBox.Show("已经是第一条信息了!","提示",MessageBoxButtons.OK,
    MessageBoxIcon.Information);
    }
    myCon.Close();
    }
    catch(OleDbException oe)
    {
    MessageBox.Show(oe.Message);
    }
    }
    2010年8月2日 14:42

答案

  • 如果有自增主键的话,取上一条 和 下一条很容易,在SQL查询语句中完成,

    例如:

    select top 1 * from 通讯录表 where i1< @ i1 order by i1 desc

    select top 1 * from 通讯录表 where i1> @ i1

     

    @i1 为当前记录的编号,排序看你自己的需求 自行修改!

    2010年8月3日 2:57
  • 你先把每個人的回覆看懂了再說吧......

     

    該取出來的上一條是數據庫裡的上一條,而不是在C#裡的上一條,

     

    這樣你懂了嗎???


    小中中的學習筆記
    2010年8月6日 0:07

全部回复