Click here to Skip to main content
15,900,258 members
Home / Discussions / C#
   

C#

 
GeneralRe: C# Is it possible to create ms.excel file in VS.Net (C#) Pin
David Salter13-Sep-04 0:19
David Salter13-Sep-04 0:19 
GeneralTHANKS :) Pin
adnanh7513-Sep-04 0:46
adnanh7513-Sep-04 0:46 
GeneralValue Type vs. Ref Type Pin
hatim_ali12-Sep-04 23:41
hatim_ali12-Sep-04 23:41 
GeneralRe: Value Type vs. Ref Type Pin
sreejith ss nair12-Sep-04 23:56
sreejith ss nair12-Sep-04 23:56 
GeneralRe: Value Type vs. Ref Type Pin
Salil Khedkar13-Sep-04 1:33
Salil Khedkar13-Sep-04 1:33 
GeneralMy application is eating CPU Pin
Stefan Bckman12-Sep-04 23:14
Stefan Bckman12-Sep-04 23:14 
GeneralRe: My application is eating CPU Pin
Steve Maier13-Sep-04 4:41
professionalSteve Maier13-Sep-04 4:41 
GeneralRe: My application is eating CPU Pin
Stefan Bckman13-Sep-04 4:48
Stefan Bckman13-Sep-04 4:48 
I got a tip that it might be that fact that I never dispose my datasets.

I have tried to dispose all datasets both in the windows version and the web version. No luck with the windows application though, still eats CPU.

When I test this I only use one page so the code is quite simple. We have one Main form that handles what page to show etc and one subform that displays the data.

Here is the code that is executed every 10 seconds from the main form:

private void timer2_Tick(object sender, System.EventArgs e)<br />
		{<br />
			YO.WindowState = FormWindowState.Maximized;<br />
			TS.WindowState = FormWindowState.Maximized;<br />
			MG.WindowState = FormWindowState.Maximized;<br />
			DG.WindowState = FormWindowState.Maximized;<br />
<br />
			string sTime =  dataContainer.getTime().ToString();<br />
			string sLimit =  dataContainer.getLimit().ToString();<br />
			string sVolume =  dataContainer.getVolume().ToString();<br />
			string sPages = dataContainer.getPages();<br />
			string sProducts = dataContainer.getProducts();<br />
			string sUnits = dataContainer.getUnits();<br />
<br />
			ArrayList arrPages = YieldMonitorEngine.ExtractPages(dataContainer.getPages());<br />
			ArrayList arrProducts = YieldMonitorEngine.ExtractProducts(dataContainer.getProducts());<br />
			<br />
			switch (int.Parse(sPageToView))<br />
			{<br />
				case AppConstants.MONITOR_YIELD_OVERVIEW: <br />
						<br />
					YO.InitializePage (int.Parse(sPageToView), int.Parse(sProductToView), int.Parse(sTime), <br />
						double.Parse(sLimit), int.Parse(sVolume), sPages, sProducts, sUnits);<br />
					MG.Hide();<br />
					DG.Hide();<br />
					TS.Hide();<br />
					YO.Show();<br />
					YO.Refresh();<br />
					YO.Update();<br />
					break;<br />
				case AppConstants.MONITOR_YIELD_DETAILS_MONTHLY_GRAPH:<br />
					MG.InitializePage (int.Parse(sPageToView), int.Parse(sProductToView), int.Parse(sTime), <br />
						double.Parse(sLimit), int.Parse(sVolume), sPages, sProducts, sUnits);<br />
					MG.Show();<br />
					MG.Refresh();<br />
					MG.Update();<br />
					YO.Hide();<br />
					DG.Hide();<br />
					TS.Hide();<br />
					break;<br />
				case AppConstants.MONITOR_YIELD_DETAILS_DAILY_GRAPH:<br />
					DG.InitializePage (int.Parse(sPageToView), int.Parse(sProductToView), int.Parse(sTime), <br />
						double.Parse(sLimit), int.Parse(sVolume), sPages, sProducts, sUnits);<br />
					DG.Show();<br />
					DG.Refresh();<br />
					DG.Update();<br />
					YO.Hide();<br />
					MG.Hide();<br />
					TS.Hide();<br />
					break;<br />
				case AppConstants.MONITOR_TOP_SYMPTOMS:<br />
					TS.InitializePage (int.Parse(sPageToView), int.Parse(sProductToView), int.Parse(sTime), <br />
						double.Parse(sLimit), int.Parse(sVolume), sPages, sProducts, sUnits);<br />
					TS.Show();<br />
					TS.Refresh();<br />
					TS.Update();<br />
					YO.Hide();<br />
					MG.Hide();<br />
					DG.Hide();<br />
					break;<br />
			}<br />
<br />
				<br />
			string sLastViewedProduct = sProductToView;<br />
			string sLastViewedPage = sPageToView;<br />
<br />
			//determine which page and product to view next<br />
			int iIndexOfLastViewedProduct = arrProducts.IndexOf(sLastViewedProduct.ToString());<br />
<br />
			//if there are more products to view for the current page just select the next product<br />
			if (iIndexOfLastViewedProduct + 1 < arrProducts.Count) <br />
			{<br />
				sProductToView = arrProducts[iIndexOfLastViewedProduct + 1].ToString();<br />
				sPageToView = sLastViewedPage;<br />
			}<br />
				//if this is the last product for this page we should select the first product and the next available page<br />
			else <br />
			{<br />
				sProductToView = arrProducts[0].ToString();<br />
<br />
				int iIndexOfLastViewedPage = arrPages.IndexOf(sLastViewedPage.ToString());<br />
<br />
				if (iIndexOfLastViewedPage + 1 < arrPages.Count) <br />
				{<br />
					sPageToView = arrPages[iIndexOfLastViewedPage + 1].ToString();<br />
				}<br />
				else <br />
				{<br />
					sPageToView = arrPages[0].ToString();<br />
				}<br />
			}<br />
<br />
			arrPages.Clear();<br />
			arrProducts.Clear();<br />
		}

When I test the application I only test with the case AppConstants.MONITOR_TOP_SYMPTOMS, so that's the code that is executed. The TS.InitializePage code looks like this:

		public void InitializePage (int iPageToView, int iProductToView, int iTime, double dLimit, int iVolume,<br />
			string sPages, string sProducts, string sUnits) <br />
		{<br />
			dgUnit1.DataSource = null;<br />
			dgUnit2.DataSource = null;<br />
			dgUnit3.DataSource = null;<br />
			dgUnit4.DataSource = null;<br />
		<br />
			DateTime dtTestDate = DateTime.Parse(DateTime.Now.AddDays(iNoDaysFromTodayToView).ToShortDateString());<br />
			//DateTime dtTestDate = DateTime.Parse("07/20/2004");<br />
			ArrayList arrProducts = YieldMonitorEngine.ExtractProducts(sProducts);<br />
			ArrayList arrUnitGroups = YieldMonitorEngine.ExtractUnitGroups(sUnits);<br />
			<br />
			//get the units to view for the current product<br />
			ArrayList arrUnitsForProduct = YieldMonitorEngine.ExtractUnitsForProduct(iProductToView, arrProducts, arrUnitGroups);<br />
<br />
			//get product data for the current product<br />
			DataSet dsProduct = YieldMonitorEngine.GetProductInfo(iProductToView);<br />
<br />
			if (dsProduct != null && dsProduct.Tables[0].Rows.Count > 0) <br />
			{<br />
				string sModelName = dsProduct.Tables[0].Rows[0][DBConstants.PRODUCT_MODEL].ToString();<br />
<br />
				//set page title<br />
				lblTitle.Text = "Top Symptoms for " + sModelName  + " - " + dtTestDate.ToString("MMMM d, yyyy");<br />
			}<br />
<br />
			if (arrUnitsForProduct.Count > 0) <br />
			{<br />
				//initalize datagrid 1<br />
				dgUnit1.Visible = true;<br />
				InitializeDataGrid(int.Parse(arrUnitsForProduct[0].ToString()), iProductToView, dtTestDate, dgUnit1, lblUnit1, dLimit, iVolume);<br />
			}<br />
			else <br />
			{<br />
				dgUnit1.Visible = false;<br />
			}<br />
<br />
			if (arrUnitsForProduct.Count > 1) <br />
			{<br />
				//initalize datagrid 2<br />
				dgUnit2.Visible = true;<br />
				InitializeDataGrid(int.Parse(arrUnitsForProduct[1].ToString()), iProductToView, dtTestDate, dgUnit2, lblUnit2, dLimit, iVolume);<br />
			}<br />
			else <br />
			{<br />
				dgUnit2.Visible = false;<br />
			}<br />
<br />
			if (arrUnitsForProduct.Count > 2) <br />
			{<br />
				//initalize datagrid 3<br />
				dgUnit3.Visible = true;<br />
				InitializeDataGrid(int.Parse(arrUnitsForProduct[2].ToString()), iProductToView, dtTestDate, dgUnit3, lblUnit3, dLimit, iVolume);<br />
			}<br />
			else <br />
			{<br />
				dgUnit3.Visible = false;<br />
			}<br />
<br />
			if (arrUnitsForProduct.Count > 3) <br />
			{<br />
				//initalize datagrid 4<br />
				dgUnit4.Visible = true;<br />
				InitializeDataGrid(int.Parse(arrUnitsForProduct[3].ToString()), iProductToView, dtTestDate, dgUnit4, lblUnit4, dLimit, iVolume);<br />
			}<br />
			else <br />
			{<br />
				dgUnit4.Visible = false;<br />
			}<br />
<br />
			dsProduct.Dispose();<br />
			arrProducts.Clear();<br />
			arrUnitGroups.Clear();<br />
			arrUnitsForProduct.Clear();<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// This method initializes and binds the unit datagrids<br />
		/// </summary><br />
		private void InitializeDataGrid(int iSupplyUnitID, int iProductID, DateTime dtTestDate, DataGrid dgUnit, Label lblUnit, double dSymptomLimit, int iMinStationVolume)<br />
		{<br />
			try <br />
			{<br />
				//set unit title<br />
				DataSet dsSupplyUnit = YieldMonitorEngine.GetSupplyUnitInfo(iSupplyUnitID);<br />
				if (dsSupplyUnit != null && dsSupplyUnit.Tables[0].Rows.Count > 0) <br />
				{<br />
					lblUnit.Text = dsSupplyUnit.Tables[0].Rows[0][DBConstants.SUPPLY_UNIT_SHORT_NAME].ToString();<br />
				}<br />
<br />
				DataSet dsTopSymptoms = YieldMonitorEngine.GetSymptomYieldDailySUMTopSymptoms(iSupplyUnitID, iProductID, dtTestDate, dSymptomLimit, iMinStationVolume);<br />
				dsTopSymptoms.Tables[0].TableName = "TopSymptoms"; <br />
				dgUnit.DataSource = dsTopSymptoms.Tables["TopSymptoms"];<br />
<br />
				if (dsTopSymptoms.Tables["TopSymptoms"].Rows.Count == 0)<br />
				{<br />
					dgUnit.Visible = false;<br />
				}<br />
				else<br />
				{<br />
					dgUnit.Visible = true;<br />
				}<br />
<br />
				dsTopSymptoms.Dispose();<br />
				dsSupplyUnit.Dispose();<br />
<br />
				dgUnit.Enabled = false;<br />
			<br />
				DataGridTableStyle dgts = new DataGridTableStyle();<br />
			<br />
				dgts = new DataGridTableStyle();<br />
				dgts.MappingName = "TopSymptoms";<br />
<br />
				dgts.AlternatingBackColor = Color.LightGray;<br />
<br />
				DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();<br />
				TextCol.MappingName = "SymptomName";<br />
				TextCol.HeaderText = "Symptom";<br />
				TextCol.ReadOnly = true;<br />
				TextCol.Width = 250;<br />
				dgts.GridColumnStyles.Add(TextCol);<br />
<br />
				TextCol = new DataGridTextBoxColumn();<br />
				TextCol.MappingName = "StationName";<br />
				TextCol.HeaderText = "Station";<br />
				TextCol.ReadOnly = true;<br />
				TextCol.Width = 250;<br />
				dgts.GridColumnStyles.Add(TextCol);<br />
<br />
				TextCol = new DataGridTextBoxColumn();<br />
				TextCol.MappingName = "YieldLossTest1";<br />
				TextCol.HeaderText = "Yield Loss";<br />
				TextCol.Format = "P";<br />
				TextCol.ReadOnly = true;<br />
				TextCol.Width = 250;<br />
				dgts.GridColumnStyles.Add(TextCol);<br />
<br />
				//change width of the row headers <br />
				dgts.RowHeadersVisible = false;<br />
 <br />
				// make the dataGrid use our new tablestyle and bind it to our table <br />
 				dgUnit.TableStyles.Clear();  <br />
<br />
				<br />
				dgUnit.TableStyles.Add(dgts);<br />
			}<br />
			catch (Exception ex) <br />
			{<br />
				string ssfsfs = "";<br />
//				lblError.Text = "Error on page: " + ex.Message;<br />
//				ExceptionManager.Publish(ex);<br />
			}<br />
		}

Can it be that I for some reason have some objects that I havn't disposed that I should? I thought .NET handled this automatically but seems like it wasn't that easy?
GeneralBitmap object question... Pin
theJazzyBrain12-Sep-04 22:54
theJazzyBrain12-Sep-04 22:54 
GeneralRe: Bitmap object question... Pin
David Salter13-Sep-04 0:23
David Salter13-Sep-04 0:23 
Generalsystem information Pin
ozgul12-Sep-04 21:29
ozgul12-Sep-04 21:29 
GeneralRe: system information Pin
pbpb12-Sep-04 22:12
pbpb12-Sep-04 22:12 
GeneralRe: system information Pin
Dave Kreskowiak13-Sep-04 6:04
mveDave Kreskowiak13-Sep-04 6:04 
GeneralInstall of an add-in Pin
Anonymous12-Sep-04 20:22
Anonymous12-Sep-04 20:22 
Generalproblem with gacutil Pin
amalatsliit12-Sep-04 20:20
amalatsliit12-Sep-04 20:20 
GeneralRe: problem with gacutil Pin
sreejith ss nair12-Sep-04 20:31
sreejith ss nair12-Sep-04 20:31 
GeneralRe: problem with gacutil Pin
amalatsliit12-Sep-04 20:38
amalatsliit12-Sep-04 20:38 
GeneralRe: problem with gacutil Pin
sreejith ss nair12-Sep-04 20:56
sreejith ss nair12-Sep-04 20:56 
GeneralRe: problem with gacutil Pin
amalatsliit13-Sep-04 0:09
amalatsliit13-Sep-04 0:09 
GeneralRe: problem with gacutil Pin
sreejith ss nair13-Sep-04 0:13
sreejith ss nair13-Sep-04 0:13 
GeneralRe: problem with gacutil Pin
amalatsliit13-Sep-04 0:22
amalatsliit13-Sep-04 0:22 
GeneralRe: problem with gacutil Pin
sreejith ss nair13-Sep-04 0:40
sreejith ss nair13-Sep-04 0:40 
GeneralThreadStart Pin
sreejith ss nair12-Sep-04 20:14
sreejith ss nair12-Sep-04 20:14 
GeneralRe: ThreadStart Pin
leppie12-Sep-04 21:40
leppie12-Sep-04 21:40 
GeneralRe: ThreadStart Pin
sreejith ss nair12-Sep-04 22:28
sreejith ss nair12-Sep-04 22:28 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.