Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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/1/asp.net/35.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# 使用asp.net在图表中的YvalueMemeber中实现自定义值_C#_Asp.net_Bar Chart - Fatal编程技术网

C# 使用asp.net在图表中的YvalueMemeber中实现自定义值

C# 使用asp.net在图表中的YvalueMemeber中实现自定义值,c#,asp.net,bar-chart,C#,Asp.net,Bar Chart,我在实现以下代码中的图表列时遇到问题: string CmdString = " SELECT convert(varchar,avg(DATEDIFF(second,[DateOuverture],[DateCloture]))/(86400)) + 'D:'+ convert(varchar,avg(DATEDIFF(second,[DateOuverture],[DateCloture]))%(86400)/3600) +

我在实现以下代码中的图表列时遇到问题:

string CmdString = " SELECT convert(varchar,avg(DATEDIFF(second,[DateOuverture],[DateCloture]))/(86400)) + 'D:'+ 
                                 convert(varchar,avg(DATEDIFF(second,[DateOuverture],[DateCloture]))%(86400)/3600) + 'H:'+
                                 convert(varchar,avg(DATEDIFF(second,[DateOuverture],[DateCloture]))% 3600)/60)+'M:'+convert(varchar,avg(DATEDIFF(second,[DateOuverture],[DateCloture]))%60) +'S' as Time,A FROM table group by A";
  SqlCommand myCommand = new SqlCommand(CmdString, con);
           myCommand.Connection.Open();
           SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
Chart4.Series["Series1"].Points.DataBindXY(myReader, "A",myReader,"Time" );
例如:

Time(9D:1H:25M:47S,13D:0H:56M:27,15D:0H:8M:24S)                   

A(MAMMO,SCINTIGRAPHIE,STANDARD)

我希望在XvalueMemeber中显示A,在YValueMemeber中显示Time,您应该更具体一些,也许可以发布一些代码

无论如何,这是我绑定图表的方式

要获取图表的数据源,需要填充数据集,然后从其中一个数据表中获取数据

// by index:
DataTable firstTable = dataSet.Tables[0];

// or by name:
DataTable firstTable = dataSet.Tables["Table1"];

DataView dv = firstTable.DefaultView;
然后将图表与DataView绑定:

Chart Chart1 = new Chart();
Chart1.Series["Series1"].ChartType = SeriesChartType.Column;
// Some other initialization for the Chart...
Chart1.Series["Series1"].Points.DataBindXY(dv, "X_COLUMN", dv, "Y_COLUMN");
-编辑-

您可以尝试将时间强制转换从整数秒数移动到字符串DD:HH:…,从查询级别移动到代码级别,在图表内。自定义EventHandler

protected void Chart1_Customize(object sender, EventArgs e)
{
    foreach (var label in Chart1.ChartAreas[0].AxisY.CustomLabels)
    {
        int secondsAmount = int.Parse(label.Text);
        string timeString = "";
        // Insert the conversion logic here and get the timeString...
        label.Text = timeString; // with format DD:HH:MM:SS
    }
}

通过这种方式,整数值被用来获得条或线的比例大小,或者其他。。。在图表上,然后可见标签从秒数转换为更易于理解的值。

我发现此错误无法从“System.Data.DataSet”转换为“System.Collections.IEnumerable”哪行代码会出现此错误?请发布您的代码更新。Chart4.Series[Series1]。Points.DataBindXYds,A,ds,Time;DataBindXY方法需要System.Collections.IEnumerable对象。不能将数据集对象传递给它。您需要从数据集的一个DataTable中提取数据,然后以IEnumerable形式(如DataView)将这些数据传递给该方法。请考虑DATABATE对象有一个称为Debug视图的属性,它返回DATAView。查看答案编辑。好的,我将数据集更改为datareaderChart4.Series[Series1].Points.DataBindXYmyReader,A,myReader,Time。。没有错误,但是图表是空的。如果Yvalue可以有字符串值,我就赢了!!因为时间是一串一串的