none
GRIDVIEW数据绑定的疑问。 RRS feed

  • 问题

  • 数据库的结构

    里面的内容

    select FTime from WorkTime where StaffNO='00394' and FDate>='2012-06-01' and Fdate<='2012-06-30 23:59:59'

    2012年6月21日 6:36

答案

  • 知道原因了:

     string str3 = "select top " + j + " FTime from (select top " + i2 + " FTime from WorkTime where StaffNO='00394' and FDate>='" + dt1.ToString() + "' and Fdate<='" + dt1.AddHours(23).AddMinutes(59).AddSeconds(59) + "') as b except (select top (" + (j - 1) + ") FTime from WorkTime where StaffNO='00394' and FDate>='" + dt1.ToString() + "' and Fdate<='" + dt1.AddHours(23).AddMinutes(59).AddSeconds(59) + "')";
                         

    原来是这句出错了。
    • 已标记为答案 彭123 2012年6月23日 1:28
    2012年6月23日 1:26

全部回复

  • 请问怎样才能达成这样的效果:

    2012年6月21日 6:37
  • //给GRIDVIEW绑定值
                string str1 = "select FTime from WorkTime where StaffNO='00394' and FDate>='2012-06-01 00:00:00.000' and Fdate<='2012-06-30 23:59:59.000'";
                // 创建一个适配器
                SqlDataAdapter adapter = new SqlDataAdapter(str1, conn);
                // 创建DataSet,用于存储数据.
                DataSet 权限表 = new DataSet();
                // 执行查询,并将数据导入DataSet.
                adapter.Fill(权限表, "结果");
                GridView1.DataSource = 权限表.Tables[0];
                GridView1.DataBind();

    这个是我所用的绑定语句
    2012年6月21日 6:39
  • 新的结果
    2012年6月22日 16:06
  •  conn.Open();
    
                //给GRIDVIEW绑定值
                string str1 = "select FTime from WorkTime where StaffNO='00394' and FDate>='"+Session["月头"]+"' and Fdate<='"+Session["月尾"]+"'";
                // 创建一个适配器
                SqlDataAdapter adapter = new SqlDataAdapter(str1, conn);
                // 创建DataSet,用于存储数据.
                DataSet 权限表 = new DataSet();
                // 执行查询,并将数据导入DataSet.
                adapter.Fill(权限表, "结果");
                GridView1.DataSource = 权限表.Tables[0];
                GridView1.DataBind();
    
                 DataTable table = new DataTable("Table");
                 DataColumn column;
                 DataRow row;
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "日期";
                 column.ReadOnly = true;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "星期";
                 column.ReadOnly = true;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡1";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡2";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡3";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡4";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡5";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡6";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡7";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡8";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡9";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 column = new DataColumn();
                 column.DataType = System.Type.GetType("System.String");
                 column.ColumnName = "刷卡10";
                 column.ReadOnly = false;
                 table.Columns.Add(column);
    
                 DataSet ds = new DataSet();
                 //ds.Tables.Add(table);
                 //this.DS.Tables.Add(table);
                 int i3 = Convert.ToInt32(Convert.ToDateTime(Session["月尾"]).Day);
                 DateTime dt1 = Convert.ToDateTime(Session["月头"].ToString());
                
                 int i2;
                 for (int i = 1; (i <= i3); i++)
                 {
                     row = table.NewRow();                
                     row["日期"] = dt1.ToLongDateString();
                     row["星期"] = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(dt1.DayOfWeek);
                     
                     //给GRIDVIEW绑定值
                     string str2 = "select COUNT(FTime) from WorkTime where StaffNO='00394' and FDate>='" + dt1.ToString() + "' and Fdate<='" + dt1.AddHours(23).AddMinutes(59).AddSeconds(59) + "'";
                     //获取当日刷卡次数
                     SqlCommand cmd = new SqlCommand(str2, conn);
                     string s1 = cmd.ExecuteScalar().ToString();
                     DataTable table1 = new DataTable();
                      i2 = Convert.ToInt32(s1);
                     for (int j=1;(j<=i2);j++)
                     {
                         string str3 = "select top " + j + " FTime from WorkTime except (select top ("+(j-1)+") FTime from WorkTime where StaffNO='00394' and FDate>='" + dt1.ToString() + "' and Fdate<='" + dt1.AddHours(23).AddMinutes(59).AddSeconds(59) + "')";
                         //获取当日刷卡次数
                         SqlCommand cmd3 = new SqlCommand(str3, conn);
                         try
                         {
                          string   s3 = cmd3.ExecuteScalar().ToString();
                             row["刷卡" + j] = s3;
                         }
                         catch
                         {
    
                         }                    
                     }
                     dt1 = dt1.AddDays(1);
                     table.Rows.Add(row);
                 }
                 ds.Tables.Add(table);
                 GridView2.DataSource = ds.Tables[0];
                 GridView2.DataBind();
                 conn.Close();
    请问错在哪里了,导致循环结果出错。
    2012年6月22日 16:07
  • 数据库的值
    2012年6月22日 16:08
  • 知道原因了:

     string str3 = "select top " + j + " FTime from (select top " + i2 + " FTime from WorkTime where StaffNO='00394' and FDate>='" + dt1.ToString() + "' and Fdate<='" + dt1.AddHours(23).AddMinutes(59).AddSeconds(59) + "') as b except (select top (" + (j - 1) + ") FTime from WorkTime where StaffNO='00394' and FDate>='" + dt1.ToString() + "' and Fdate<='" + dt1.AddHours(23).AddMinutes(59).AddSeconds(59) + "')";
                         

    原来是这句出错了。
    • 已标记为答案 彭123 2012年6月23日 1:28
    2012年6月23日 1:26
  • 最终结果

    2012年6月23日 1:27