【问题标题】:How to get first four values from datarow and how to index each datarow value [duplicate]如何从数据行中获取前四个值以及如何索引每个数据行值[重复]
【发布时间】:2017-10-24 20:20:25
【问题描述】:

如何从datarow 获取前四个值,因为我已经完成了选择部分,但是如何索引每个数据行值,以便我可以使用每个 Teacher_Name 字符串。我尝试了以下代码,但不起作用。请问可以帮忙吗?谢谢。

        cmd.CommandText = "SELECT DISTINCT Teacher_Name from " + myTeacher + " Order by Sum_Weekly_Credit desc LIMIT 4";

        DataTable dt = new DataTable();
        SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
        da.Fill(dt);

        string[] FourTeachers = new string[dt.Rows.Count];
        int i = 0;
        foreach (DataRow dr in dt.Rows)
        {
            FourTeachers[i] = dr["Teacher_Name"].ToString();
            string FT0 = FourTeachers[0];
            string FT1 = FourTeachers[1];
            string FT2 = FourTeachers[2];
            string FT3 = FourTeachers[3];
            //                MessageBox.Show("" + Convert.ToInt32(dr["Teacher_Name"].ToString()));
            i++;
        }

        for (int j = 1; j < 21; j++)
        {
            string FT0 = FourTeachers[0];
            string FT1 = FourTeachers[1];
            string FT2 = FourTeachers[2];
            string FT3 = FourTeachers[3];
            cmd2.CommandText = "SELECT FT0, FT1, FT2, FT3 FROM group_even_" + j + " Order by Sum(Weekly_Credit) desc";

            DataTable dt2 = new DataTable();
            SQLiteDataAdapter da2 = new SQLiteDataAdapter(cmd2);
            da2.Fill(dt2);
            int FT = dt2.Rows.Count;

【问题讨论】:

标签: c# sqlite


【解决方案1】:

那你为什么不像下面[假设 SQL Server] 那样更改 SQL 查询本身

cmd.CommandText = "SELECT DISTINCT TOP 4 Teacher_Name from " + myTeacher + " Order by Sum_Weekly_Credit desc"

【讨论】:

  • 根据您使用的支持数据库(MSSQL、MySQL 等),您可能需要将 TOP 替换为 LIMIT
  • 对不起先生。我正在使用sqlite。它不适用于 SELECT DiSTINCT TOP 4。
猜你喜欢
  • 2022-01-04
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 2016-03-03
  • 2021-12-20
相关资源
最近更新 更多