Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何基于列值显示特定的数据行_C#_Asp.net_Datatable_Json.net - Fatal编程技术网

C# 如何基于列值显示特定的数据行

C# 如何基于列值显示特定的数据行,c#,asp.net,datatable,json.net,C#,Asp.net,Datatable,Json.net,从这段代码中,我试图只显示包含Station\u From\u code列中的“DBY”字段和Station\u to\u列中的“MAT”字段的数据行。然后将其打印到HTML页面上。这些字段肯定在datatable中,但当我运行此代码时,表是空的。我不习惯在C#中处理数据表,因此很抱歉编码太差 dynamic schedluedContent = JsonConvert.DeserializeObject(scheduledJson); JArray items2 = n

从这段代码中,我试图只显示包含
Station\u From\u code
列中的“DBY”字段和
Station\u to\u列中的“MAT”字段的数据行。然后将其打印到HTML页面上。这些字段肯定在datatable中,但当我运行此代码时,表是空的。我不习惯在C#中处理数据表,因此很抱歉编码太差

dynamic schedluedContent = JsonConvert.DeserializeObject(scheduledJson);
            JArray items2 = new JArray();
            foreach (JObject stops in schedluedContent.stops)
            {
                   DataTable dt = new DataTable();
                   DataRow dr;
                   dr = dt.NewRow();
                   dr["From_Station_Code"] = stops["station_code"];
                   dr["To_Station_Code"] = stops["station_code"];

                   dt.Rows.Add(dr);

                   DataRow[] result = dt.Select("From_Station_Code = 'DBY' AND To_Station_Code = 'MAT'");

                   dt.Rows.Add(result);
                   GridViewTrainTimes.DataSource = dt;
                   GridViewTrainTimes.DataBind();
              }

您可以使用“查找匹配行”和“添加新数据表”,该表只包含匹配行数据,然后您可以将此dt绑定到gridview

DataTable dt = new Datatable(); // Lets this datatable have data;
Datatable dt2 = new Datatable(); // Copy all matching rows
foreach (DataRow dr in dt.Rows)
{
if (dr["From_Station_Code"].ToString() == "DBY" && dr["To_Station_Code"].ToString() == "MAT")
{
    dt2.Rows.Add(dr);
}
}
GridViewTrainTimes.DataSource = dt;
GridViewTrainTimes.DataBind();

您可以使用“查找匹配行”和“添加新数据表”,该表只包含匹配行数据,然后您可以将此dt绑定到gridview

DataTable dt = new Datatable(); // Lets this datatable have data;
Datatable dt2 = new Datatable(); // Copy all matching rows
foreach (DataRow dr in dt.Rows)
{
if (dr["From_Station_Code"].ToString() == "DBY" && dr["To_Station_Code"].ToString() == "MAT")
{
    dt2.Rows.Add(dr);
}
}
GridViewTrainTimes.DataSource = dt;
GridViewTrainTimes.DataBind();

很长一段时间我都没有见过这种处理数据库表的代码!EntityFramework正在发生变化,它无疑简化了使用数据库的方式,并防止了在代码中使用SQL命令的不同风险

如果您使用EF,您的代码将类似于以下内容:

var rows = myDBContext.MyTable.Where(x=>x.From_Station_Code == "DBY" && x.To_Station_Code == "MAT");
GridViewTrainTimes.DataSource = rows;

很长一段时间我都没有见过这种处理数据库表的代码!EntityFramework正在发生变化,它无疑简化了使用数据库的方式,并防止了在代码中使用SQL命令的不同风险

如果您使用EF,您的代码将类似于以下内容:

var rows = myDBContext.MyTable.Where(x=>x.From_Station_Code == "DBY" && x.To_Station_Code == "MAT");
GridViewTrainTimes.DataSource = rows;

您是否尝试过使用通配符并选择所有行以确保返回结果并且连接良好?您能否解释一下什么是停止?我添加了更多代码您的代码是错误的。每次迭代都会更改数据源!您是否尝试过使用通配符并选择所有行以确保返回结果并且连接良好?您能否解释一下什么是停止?我添加了更多代码您的代码是错误的。每次迭代都会更改数据源!