如何在ListView中进行计算 [英] How to work on calculation in ListView
问题描述
我是C#的新手.当数据打印在ListView上时,我试图让应用程序为我计算["High"]-["Low"].有人可以提供一些有关如何进行处理的信息.谢谢.
********************我的项目**********************
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阅读器;
字符串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 typeint
:
int high = ( int ) reader[ "High" ];
int low = ( int ) reader[ "Low" ];
int range = high - low;
li.SubItems.Add( range.ToString() );
尼克
Nick
这篇关于如何在ListView中进行计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!