Just nu i M3-nätverket
Jump to content

Kan inte konvertera...


Mossberg

Recommended Posts

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?

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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"];

 

 

Link to comment
Share on other sites

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?

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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>

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...