如何在ListView中进行计算 [英] How to work on calculation in ListView

查看:89
本文介绍了如何在ListView中进行计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我是C#的新手.当数据打印在ListView上时,我试图让应用程序为我计算["High"]-["Low"].有人可以提供一些有关如何进行处理的信息.谢谢.

********************我的项目**********************

lv.Columns.Add("Price",50,Horizo​​ntalAlignment.Right);
lv.Columns.Add("Date",80,Horizo​​ntalAlignment.Right);
lv.Columns.Add("High",60,Horizo​​ntalAlignment.Right);
lv.Columns.Add("Low",60,Horizo​​ntalAlignment.Right);
lv.Columns.Add("High-Low",60,Horizo​​ntalAlignment.Right);
lv.Visible = true;

OleDbDataReader阅读器;
字符串strCommand ="SELECT * FROM myReport";
this.conConnection.Open()OleDbCommand cmd =新的OleDbCommand(strCommand,conConnection);
reader = cmd.ExecuteReader();

while(reader.Read())
{
ListViewItem li =新的ListViewItem();
li.SubItems.Clear();
li.SubItems [0] .Text = reader ["Price"].ToString();
li.SubItems.Add(reader ["Date"].ToString());
li.SubItems.Add(reader ["High"].ToString());
li.SubItems.Add(reader ["Low"].ToString());
li.SubItems.Add(reader ["High"-"Low"].ToString());
lv.Items.Add(li);
}
************************************************

Hi,

I am new to c#. I am trying to let the application calculate the ["High"]-["Low"] for me when the data is printed on the ListView. Can someone provide some information how to work on it. Thank you.

********************My Project**********************

lv.Columns.Add("Price", 50, HorizontalAlignment.Right);
lv.Columns.Add ( "Date" , 80 , HorizontalAlignment.Right ) ;
lv.Columns.Add("High", 60, HorizontalAlignment.Right);
lv.Columns.Add("Low", 60, HorizontalAlignment.Right);
lv.Columns.Add("High-Low", 60, HorizontalAlignment.Right);
lv.Visible = true ;

OleDbDataReader reader ;
string strCommand = "SELECT * FROM myReport" ;
this.conConnection.Open ( ) OleDbCommand cmd = new OleDbCommand ( strCommand , conConnection ) ;
reader = cmd.ExecuteReader ( ) ;

while ( reader.Read ( ) )
{
ListViewItem li = new ListViewItem ( ) ;
li.SubItems.Clear ( ) ;
li.SubItems[0].Text = reader["Price"].ToString();
li.SubItems.Add(reader["Date"].ToString());
li.SubItems.Add(reader["High"].ToString());
li.SubItems.Add(reader["Low"].ToString());
li.SubItems.Add(reader["High"-"Low"].ToString());
lv.Items.Add ( li ) ;
}
********************************************

推荐答案

您可以在CommandText中进行操作,即

You can do it in your CommandText i.e

SELECT Price, Date, High, Low, (High - Low) AS Difference From myReport



那么您可以像这样从阅读器中读取行



then you can read the rows from your reader like this

li.SubItems.Add(reader["Price"].ToString();
li.SubItems.Add(reader["Date"].ToString();
li.SubItems.Add(reader["High"].ToString();
li.SubItems.Add(reader["Low"].ToString();
li.SubItems.Add(reader["Difference"].ToString();



尽管我认为这是做事的错误方法.如果您是我,我不会将数据作为字符串存储在数据库中,而是使用适当的数据类型并检索这样的数据



although I think this is the wrong way to go about things. If I were you I would not store my data in the database as strings, instead I would use the appropriate data type and retrieve the data like this

li.SubItems.Add(reader.GetDecimal(0);
li.SubItems.Add(reader.GetDate(1); etc



很明显,这是在您检查阅读器没有返回任何Null值之后.

希望这对您有帮助



This is obviously after you have checked that the reader is not returning any Null values.

Hope this helps


您必须获取两个值并将其相减.

例如,如果您的值的类型为int:

You have to get the two values and subtract those.

For example, if your values are of type int:

int high = ( int ) reader[ "High" ];
int low  = ( int ) reader[ "Low" ];
int range = high - low;

li.SubItems.Add( range.ToString() );



尼克



Nick


这篇关于如何在ListView中进行计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆