icaaqMedlem sedan okt. 20004 910 inlägg
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
NETworkMedlem sedan juni 20011 679 inlägg
//I global.asax:
Application["GlobalDataSet"] = myDs;
Red// Men det är ju inte så resurseffektivt att göra så...
icaaqMedlem sedan okt. 20004 910 inlägg
icaaqMedlem sedan okt. 20004 910 inlägg
Hur sk jag göra?
Jag vill uppdatera mitt DataSet varje gång jag anropar sidan :)
NETworkMedlem sedan juni 20011 679 inlägg
Samma för get/set... alltså:
DataSet ds = new DataSet();
ds = Application["GlobalDataSet"];
icaaqMedlem sedan okt. 20004 910 inlägg
Cannot implicitly convert type 'object' to 'System.Data.DataSet'
:OO
hmmmmm
NETworkMedlem sedan juni 20011 679 inlägg
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.
NETworkMedlem sedan juni 20011 679 inlägg
(DataSet)Application["GlobalDataSet"];
icaaqMedlem sedan okt. 20004 910 inlägg
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?
NETworkMedlem sedan juni 20011 679 inlägg
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...
renholmMedlem sedan apr. 20012 048 inlägg
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"];
icaaqMedlem sedan okt. 20004 910 inlägg
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(" "));
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
icaaqMedlem sedan okt. 20004 910 inlägg
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