迭代trougth数据库表中的行C#

嗨,是我

我的数据库中有一个表,名为“ students”,其中有人数,姓名,地址……。
我有一个表格,一次可以为一个学生加载所有信息,还有一个“下一步”按钮和“返回”按钮。
我怎样才能迭代到mysql的下一行(或上一行)(以便能够看到下一个学生的信息)?
我尝试使用主键(自动递增)进行迭代,当我想查看下一条记录时,我向ID加1或减去1以查看前一条记录。
但是,如果删除一条记录,它将显示一个空记录。你能指出我正确的方向吗?
我正在使用WinForms
对不起我的英语。

            string config = "server=localhost; userid = root; database = databaseName";
            MySqlConnection con = new MySqlConnection(config);

            MySqlDataReader reader = null;
            string query = "SELECT * FROM students WHERE id = " + id; //id is the primary Key (auto increment)

            MySqlCommand command = new MySqlCommand(query, con);
            con.Open();
            reader = command.ExecuteReader();

            while (reader.Read())
            {

                string studentName = (string)reader["studentName"];

                string studentNum = (string)reader["studentNum"];

                tbstudentName.Text = Convert.ToString(studentName);
                tbstudentNum.Text = Convert.ToString(studentNum);                   

                .....
            }
            con.Close();
阿德里安

您不应该在每次要查看下一条记录时都调用数据库。尝试将所有数据读入列表。

我不确定您使用的是什么。WinForms?WPF?

如果使用WinForms,则需要执行以下操作。

    public class Student
    {//First create a class to hold your data in
      public string Name { get; set; }
      public string Num { get; set; }
    }

public class MyForm : Form
{
    int Index = 0;
    List<Student> FormData { get; set; }

    void GetData()
    {
    //This will hold all your data in memory so you do not have to make a database call each and every "iteration"
    List<Student> dbData = new List<Student>();

    string config = "server=localhost; userid = root; database = databaseName";
        MySqlConnection con = new MySqlConnection(config);

        MySqlDataReader reader = null;
        string query = "SELECT * FROM students";

        MySqlCommand command = new MySqlCommand(query, con);
        con.Open();
        reader = command.ExecuteReader();

        while (reader.Read())
        {
            Student newStudent = new Student();

            newStudent.Name = (string)reader["studentName"];

            newStudent.Num = (string)reader["studentNum"];
            //Add data to the list you created
            dbData.Add(newStudent);          

            .....
        }
        con.Close();

        //set the Form's list equal to the one you just populated
        this.FormData = dbData;
    }

    private void BindData()
    {
        //If winforms
        tbstudentName.Text = FormData[Index].Name;
        tbstudentNum.Text = FormData[Index].Num;

        //If wpf you will have to use view models and bind your data in your XAML but I am assuming you are using
        //winforms here.
    }

    private void NextRecord()
    {    //If you reached the end of the records then this will prevent IndexOutOfRange Exception
        if (Index < FormData.Count - 1)
        {
            Index++;
            BindData();
        }
    }

    private void PreviousRecord()
    {
        if (Index != 0)
        {
            Index--;
            BindData();
        }
    }
}

现在,以上场景将使其快速工作;但是,有更好的方法可以在需要更改数据时为您提供帮助。我建议使用WinForms绑定。您可以在这里查看它http://msdn.microsoft.com/en-us/library/c8aebh9k(v=vs.110).aspx

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数据库ASP获取数据时跳过表中的行。净C#

来自分类Dev

C#确认表行已从数据库中删除

来自分类Dev

在C#中获取数据库表名称

来自分类Dev

在C#中从DataGridView更新数据库表

来自分类Dev

在C#中获取数据库表名称

来自分类Dev

显示COUNT个数据表中WPF C#的数据库表中有多少行

来自分类Dev

使用C#从数据库中删除行

来自分类Dev

数据库:计算表中的行

来自分类Dev

将数据插入数据库C#中的表中

来自分类Dev

使用C#从Amazon Dynamo数据库表中获取数据

来自分类Dev

WPF c#数据网格中的“&”号(&)与数据库表绑定

来自分类Dev

C#从数据库添加数据表中的列

来自分类Dev

c# 将数据库提取到 SQL Server 数据表中

来自分类Dev

合并来自数据库中两个表的数据以获得总和(C#)

来自分类Dev

C#显示从数据库表到DataGrid的所有行

来自分类Dev

如何将输入文件中的行分为两部分,然后将其与c#中数据库表的两列数据进行比较?

来自分类Dev

在MVC C#中显示特定SQL Server数据库中每个表的列名

来自分类Dev

在C#中使用Linq或lambda从数据库表中获取X个随机元素

来自分类Dev

设计此方法的最佳实践:C#中的枚举或单独的数据库表

来自分类Dev

使用C#编辑DataGridview并将其保存在数据库表中

来自分类Dev

在C#中使用Linq或lambda从数据库表中获取X个随机元素

来自分类Dev

如何使用数据库表在C#中创建自动建议文本框

来自分类Dev

设计此方法的最佳实践:C#中的枚举或单独的数据库表

来自分类Dev

在C#中运行SQL脚本到某个数据库或表?

来自分类Dev

如何在我的C#代码中模拟数据库表结构

来自分类Dev

如何在LINQ(C#)中引用数据库表并将其作为JsonResult返回

来自分类Dev

如何在标签c#中以windows形式显示数据库表的所有列

来自分类Dev

从数据库中的多个表中删除行

来自分类Dev

无法从Java中的数据库读取表中的行

Related 相关文章

  1. 1

    从数据库ASP获取数据时跳过表中的行。净C#

  2. 2

    C#确认表行已从数据库中删除

  3. 3

    在C#中获取数据库表名称

  4. 4

    在C#中从DataGridView更新数据库表

  5. 5

    在C#中获取数据库表名称

  6. 6

    显示COUNT个数据表中WPF C#的数据库表中有多少行

  7. 7

    使用C#从数据库中删除行

  8. 8

    数据库:计算表中的行

  9. 9

    将数据插入数据库C#中的表中

  10. 10

    使用C#从Amazon Dynamo数据库表中获取数据

  11. 11

    WPF c#数据网格中的“&”号(&)与数据库表绑定

  12. 12

    C#从数据库添加数据表中的列

  13. 13

    c# 将数据库提取到 SQL Server 数据表中

  14. 14

    合并来自数据库中两个表的数据以获得总和(C#)

  15. 15

    C#显示从数据库表到DataGrid的所有行

  16. 16

    如何将输入文件中的行分为两部分,然后将其与c#中数据库表的两列数据进行比较?

  17. 17

    在MVC C#中显示特定SQL Server数据库中每个表的列名

  18. 18

    在C#中使用Linq或lambda从数据库表中获取X个随机元素

  19. 19

    设计此方法的最佳实践:C#中的枚举或单独的数据库表

  20. 20

    使用C#编辑DataGridview并将其保存在数据库表中

  21. 21

    在C#中使用Linq或lambda从数据库表中获取X个随机元素

  22. 22

    如何使用数据库表在C#中创建自动建议文本框

  23. 23

    设计此方法的最佳实践:C#中的枚举或单独的数据库表

  24. 24

    在C#中运行SQL脚本到某个数据库或表?

  25. 25

    如何在我的C#代码中模拟数据库表结构

  26. 26

    如何在LINQ(C#)中引用数据库表并将其作为JsonResult返回

  27. 27

    如何在标签c#中以windows形式显示数据库表的所有列

  28. 28

    从数据库中的多个表中删除行

  29. 29

    无法从Java中的数据库读取表中的行

热门标签

归档