Just nu i M3-nätverket
Gå till innehåll

Kan inte konvertera...


Mossberg

Rekommendera Poster

Trodde jag kunde det här men icke, denna ska konverteras till c#:

 

if not (Session(Calendar1.SelectedDate.ToString) is nothing)

 

Har provat: if (!(Session[Calendar1.SelectedDate.ToString] == null))

men det blir fel...

 

Tips?

 

Länk till kommentar
Dela på andra webbplatser

Ehe...

Raden är rätt uppbyggd men den resulterar i felet: System.NullReferenceException: Object reference not set to an instance of an object.

 

if-satsen ser ut såhär i sin helhet:

 

if (!(Session["Calendar1.SelectedDate"].ToString() == null))

{

Label I = new Label();

I.Text = Session["Calendar1.SelectedDate"].ToString();

DayPanel.Controls.Add(I);

}

 

Tips (igen)?

 

[inlägget ändrat 2004-09-02 12:41:49 av Mossberg]

Länk till kommentar
Dela på andra webbplatser

Sessions är av type Object och måste castas korrekt, om sessionsvärdet inte finns returneras null.

 

Du försöker kalla på en metod där det inte finns någon referens till ett objekt, alltså får du ett "NullReferenceException".

 

Så istället för ToString() kör med:

 

I.Text = (string)Session["Calendar1.SelectedDate"];

 

 

Länk till kommentar
Dela på andra webbplatser

Har en till som ställer till det (har börjat lite smått men fastnat):

 

UT = UT + TBL.Columns[iNTB].ColumnName + "=" + CROW[iNTA][iNTB].ToString + "<br>";

 

Var ska jag placera String nu och hur ska uppbyggnaden i övrigt se ut?

 

Länk till kommentar
Dela på andra webbplatser

ToString ska ha () det är det enda jag kan se på den raden när jag inte vet vad resten av koden är för något, är det en table/datagrid eller något annat ?

 

Vad får du för fel ?

 

[inlägget ändrat 2004-09-02 18:09:33 av PBL]

Länk till kommentar
Dela på andra webbplatser

Har gått lite fort fram i boken (ska läsa om ett par kapitel idag, lite ovan att läsa...o nu har man läst i 4 veckor i sträck o d börjar bli lite segt) så jag har inte helkoll på koden o alla funkt.

 

Jag får i a f felmed:

Use of unassigned local variable 'UT'

 

Koden i övrigt ser ut såhär:

 

<%@ Page Language="c#" Debug="true" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.SqlClient" %>

 

<script runat="server">

 

void Page_Load(object obj, EventArgs e)

{

SqlConnection KOPPLING = new SqlConnection ("Data Source:henrik; Initial Catalog:bilar;

 

Integrated Security:SSPI");

 

SqlDataAdapter TJOHO = new SqlDataAdapter ("SELECT * FROM EgnaBilar", KOPPLING);

 

DataSet DS = new DataSet();

TJOHO.Fill(DS, "EgnaBilar");

 

DataTable TBL = DS.Tables["EgnaBilar"];

DataRow[] CROW = TBL.Select(null, null, DataViewRowState.CurrentRows);

 

int INTA;

int INTB;

String UT;

 

for (INTA = 0; INTA <= CROW.Length - 1; INTA++)

{

 

for (INTB = 0; INTB <= TBL.Columns.Count - 1; INTB++)

{

UT = UT + TBL.Columns[iNTB].ColumnName + "=" + CROW[iNTA][iNTB].ToString() + "<br>";

}

 

}

 

Response.Write(UT);

 

}

 

</script>

<html>

<body>

</body>

</html>

 

Länk till kommentar
Dela på andra webbplatser

Det är inte alltid säkert att du kommer in i innersta for-loopen, där

UT = UT + ...

Därför finns det tillfällen där UT kan vara oinitierad.

 

Sätt strängen till tom sträng där den deklareras...

String UT = "";

 

...så går det nog bättre.

 

Länk till kommentar
Dela på andra webbplatser

Tänk på att du bör använda dig av StringBuilder när du lägger i hop stränger p g a att String allockerar om minne varje gång man ändrar storleken på strängen (lägger till tar bort etc), e g:

 

// Lägg till using System.Text 
StringBuilder UT = new StringBuilder();

for (INTA = 0; INTA <= CROW.Length - 1; INTA++)
{
for (INTB = 0; INTB <= TBL.Columns.Count - 1; INTB++)
{
	UT.Append(TBL.Columns[iNTB].ColumnName + "=" + 
	          CROW[iNTA][iNTB].ToString() + "<br>");
}
}
Response.Write(UT.ToString());

 

 

Mvh

 

Jimmy

 

 

[inlägget ändrat 2004-09-05 14:03:28 av dotgif]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...