webForumDet fria alternativet
Logga in / Bli medlem

global.aspx

.NET

12 svar · 267 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#1

hur hämtar jag ett datset som jag skapat i global.aspx så här

[red]
protected void Application_BeginRequest(Object sender, EventArgs e)
		{
			SqlConnection myConn = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;Initial Catalog=krisen; uid=sa; pwd=");
			string strSQL = "SELECT * FROM dbo.t_date";
			SqlDataAdapter myDa = new SqlDataAdapter(strSQL, myConn);
			DataSet myDs = new DataSet();
			Context.Items.Add("MyDataSet", myDs);
		}[/red]

:q

RED/ Jag vill alltså hämta det på min *.cs sida

Medlem sedan juni 20011 732 inlägg
#2

//I global.asax:
Application["GlobalDataSet"] = myDs;

Red// Men det är ju inte så resurseffektivt att göra så...

Medlem sedan okt. 20005 273 inlägg
#3

Och på *.cs :q

Medlem sedan okt. 20005 273 inlägg
#4

Hur sk jag göra?
Jag vill uppdatera mitt DataSet varje gång jag anropar sidan :)

Medlem sedan juni 20011 732 inlägg
#5

Samma för get/set... alltså:

DataSet ds = new DataSet();
ds = Application["GlobalDataSet"];
Medlem sedan okt. 20005 273 inlägg
#6

Cannot implicitly convert type 'object' to 'System.Data.DataSet'

:OO
hmmmmm

Medlem sedan juni 20011 732 inlägg
#7

Alltså, om du bara ska använda ditt ds på en sida så räcker det ju med att du fyller exempelvis din datagrid en gång. Denna finns sedan i din dataview för varje postback... så du kan nå ditt dataset från exempelvis din datagrid i dina andra funktioner på samma sida utan att behöva anropa din db igen.

Medlem sedan juni 20011 732 inlägg
#8

(DataSet)Application["GlobalDataSet"];

Medlem sedan okt. 20005 273 inlägg
#9

Jag ska försöka förklara hur jag gjort:
jag har två tabeller som jag bygger upp dynamiskt mha antal dagar i månaden.

Jag ska visa lite info i vardera tabell beronde om det finns nått datum som matchar datumet som vi generar....

Jag har ju även några inputs på samma sida. Men när jag gör en postback så uppdateras inte sidan på en gång.......det är väll där problemet ligger...

Hur ska jag lösa det?

Medlem sedan juni 20011 732 inlägg
#10

Förstår inte riktigt hur du menar (släng gärna med lite kod), men om du gör ändringar i dina data så måste du ju även binda om dina kontroller som visar dina data. Tror inte att du behöver skapa ditt dataset i global.asax för att fixa det...

Medlem sedan apr. 20012 266 inlägg
#11

Re: global.aspx

icaaq skrev:

hur hämtar jag ett datset som jag skapat i global.aspx så här

[red]
protected void Application_BeginRequest(Object sender, EventArgs e)
		{
			SqlConnection myConn = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;Initial Catalog=krisen; uid=sa; pwd=");
			string strSQL = "SELECT * FROM dbo.t_date";
			SqlDataAdapter myDa = new SqlDataAdapter(strSQL, myConn);
			DataSet myDs = new DataSet();
			Context.Items.Add("MyDataSet", myDs);
		}[/red]

:q

RED/ Jag vill alltså hämta det på min *.cs sida

Så här:

DataSet dataSet = (DataSet)Context.Items["MyDataSet"];
Medlem sedan okt. 20005 273 inlägg
#12

ok..här kommer lite kod....

Men komihåg att jag nyss börjat med OOP:

[red]
private void doSkala()
		{
			int numrows;
			string path = Request.FilePath;
			CultureInfo cultSwe = new CultureInfo("sv-SE");
			Table tLinks = new Table();
			
			// Kollar lite datum
			DateTime dtedate = DateTime.Now.Date;
			if (Request.QueryString["dteDate"] != null)
			{
				dtedate = Convert.ToDateTime(Request.QueryString["dteDate"]);
			}
			numrows = DateTime.DaysInMonth(dtedate.Year, dtedate.Month);
			DateTime dteDay = new DateTime(dtedate.Year, dtedate.Month, 1);
			#region styles
			// Skapar en style för veckodagarna
			Style sVeckoDagar = new Style();
			sVeckoDagar.Width = Unit.Percentage(100);
			sVeckoDagar.Font.Name = "Verdana";
			sVeckoDagar.Font.Size = FontUnit.XSmall;
			sVeckoDagar.BorderWidth = Unit.Pixel(1);
			sVeckoDagar.BorderColor = Color.Coral;
			sVeckoDagar.BorderStyle = BorderStyle.Dotted;

			// Skapar en style för Länkarna
			Style sLank = new Style();
			sLank.Width = Unit.Percentage(100);
			sLank.Font.Name = "Verdana";
			sLank.Font.Size = FontUnit.XSmall;
			sLank.BorderWidth = Unit.Pixel(1);

			Style sBig = new Style();
			sBig.Width = Unit.Percentage(100);
			sBig.Font.Name = "Verdana";
			sBig.Font.Size = FontUnit.XSmall;
			sBig.BorderWidth = Unit.Pixel(1);
			sBig.BorderColor = Color.Coral;
			sBig.BorderStyle = BorderStyle.Dotted;

			Style sDatum = new Style();
			sDatum.Width = Unit.Percentage(100);
			sDatum.Font.Name = "Verdana";
			sDatum.Font.Size = FontUnit.XSmall;
			sDatum.BorderWidth = Unit.Pixel(1);
			sDatum.BorderColor = Color.Coral;
			sDatum.BorderStyle = BorderStyle.Dotted;
			#endregion
			TableRow tLinkRow = new TableRow();
			TableCell tlinkCell = new TableCell();
			tlinkCell.Controls.Add(new LiteralControl("0 till 100%"));
			tlinkCell.ColumnSpan = 2;
			tlinkCell.HorizontalAlign = HorizontalAlign.Center;
			tlinkCell.ApplyStyle(sLank);
			tLinkRow.Cells.Add(tlinkCell);
			tLinkRow.HorizontalAlign = HorizontalAlign.Center;
			tLinks.Rows.Add(tLinkRow);
			TableRow row1 = new TableRow();
			TableCell cell1 = new TableCell();
			cell1.Controls.Add(tLinks);
			cell1.ColumnSpan = 2;
			cell1.HorizontalAlign = HorizontalAlign.Center;
			cell1.ApplyStyle(sLank);
			row1.Cells.Add(cell1);
			row1.HorizontalAlign = HorizontalAlign.Center;
			tSkala.Rows.Add(row1);

			// Hämtar data ur t_datum
			SqlConnection myConn = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;Initial Catalog=krisen; uid=sa; pwd=");
			string strSQL = "SELECT * FROM dbo.t_date";
			SqlDataAdapter myDa = new SqlDataAdapter(strSQL, myConn);
			DataSet myDs = new DataSet();
			myDa.Fill(myDs, "datum");
			for (int j=0; j<numrows; j++)
			{   
				Boolean blnOK = false;
				int s = 0;
				for(int i=0; i < myDs.Tables["datum"].Rows.Count - 1; i++) 
				{ 
					if(myDs.Tables["datum"].Rows[i]["f_date"].Equals(dteDay)) 
					{ 
						blnOK = true;
						s = i;
					}
				}
				if (blnOK == true)
				{
					int intFeel = Convert.ToInt32(myDs.Tables["datum"].Rows[s]["f_feel"]);
					HtmlImage barImage = new HtmlImage();
					barImage.Src = "/WebApplication1/images/bar.jpg";
					barImage.Width = intFeel;
					barImage.Height = 16;

					Table barTable = new Table();
					TableRow barRow = new TableRow();
					TableCell barCell = new TableCell();
					barCell.Controls.Add(barImage);
					barRow.Cells.Add(barCell);
					barTable.Rows.Add(barRow);
					barTable.CellPadding = 0;
					barTable.CellSpacing = 0;

					TableRow r = new TableRow();                
					TableCell c = new TableCell();
					c.Controls.Add(barTable);
					c.ApplyStyle(sLank);
					r.Cells.Add(c);
					tSkala.Rows.Add(r);
				}
				else
				{					
					TableRow r1 = new TableRow();                
					TableCell c1 = new TableCell();
					c1.Controls.Add(new LiteralControl("&nbsp;"));
					c1.ApplyStyle(sLank);
					r1.Cells.Add(c1);
					tSkala.Rows.Add(r1);
				}			
				
				dteDay = dteDay.AddDays(1);
				tSkala.ApplyStyle(sBig);
			}
		}[/red]

här listar jag en tabell....och så här ser button1_click ut

[red]private void Button1_Click(object sender, System.EventArgs e)
		{
			DateTime datum_datum = Convert.ToDateTime(Hidden1.Value);
			int intFeel = Convert.ToInt16(DropDownList1.SelectedItem.Value);
			SqlConnection myConn = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;Initial Catalog=krisen; uid=sa; pwd=");
			SqlCommand myComm = new SqlCommand("doInsertSkale", myConn);
			myComm.CommandType = CommandType.StoredProcedure;
			myComm.Parameters.Add("@f_date", SqlDbType.DateTime, 8).Value = datum_datum; 
			myComm.Parameters.Add("@f_feel", SqlDbType.Int, 4).Value = intFeel;
			myComm.UpdatedRowSource = UpdateRowSource.Both;
			myConn.Open();
			myComm.ExecuteNonQuery();
			myConn.Close();
			fillDD();
			doSkala();
		}
[/red]

nu vill jag höra hur jag ska göra :OO

Medlem sedan okt. 20005 273 inlägg
#13

Det optimala vore ju att mitt dataset sats "globalt" på sidan och att jag sen kunde anropa det på de olika ställena där jag behöver det :OO skulle det vara ett bra sätt :q

268 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)