Just nu i M3-nätverket
Jump to content

Blir inte klok på DataTable..!


Mossberg

Recommended Posts

Hallå hallå,

Har denna kod:

DataTable dt = new DataTable();

DataColumn column;
column = dt.Columns.Add("PicDate",typeof(string));
column = dt.Columns.Add("Pic",typeof(string));
column = dt.Columns.Add("PicText",typeof(string));

while(Read.Read())
{
if(Read["Pic1"].ToString() != "")
dt.Rows.Add(Read["Date"].ToString(),Read["Pic1"].ToString(),Read["Pic1Text"].ToString());

if(Read["Pic2"].ToString() != "")
dt.Rows.Add(Read["diary_Date"].ToString(),Read["Pic2"].ToString(),Read["Pic2Text"].ToString());

if(Read["Pic3"].ToString() != "")
dt.Rows.Add(Read["Date"].ToString(),Read["Pic3"].ToString(),Read["Pic3Text"].ToString());
}

DataView dv = new DataView(dt);

 

När jag kör denna kod lokalt funkar allt, men när jag lägger upp den på servern så får jag felet:

 

No overload for method 'Add' takes '3' arguments

..för:

dt.Rows.Add(Read["Date"].ToString(),Read["Pic1"].ToString(),Read["Pic1Text"].ToString());

 

Jag kör på ASP.NET 2.0 lokalt, men servern på nätet har 1'an, hur kan jag skriva om denna för att den ska funka även där?

 

Poäng till lösning/Henrik

 

Link to comment
Share on other sites

Du måste lägga kolumnvärdena i en array istället och använda denna som argument till .Add:

 

object[] rowVals = new object[3];
rowVals[0]=Read["Date"].ToString();
rowVals[1]=Read["Pic3"].ToString();
rowVals[2]=Read["Pic3Text"].ToString());
dt.Rows.Add(rowVals);

 

Link to comment
Share on other sites

Lägg till nya rader mha en ItemArray som Anjuna Moon föreslår, eller använd följande:

 

DataRow newRow = dt.NewRow();

 

newRow[fält] = värde;

...

...

 

dt.Rows.Add(newRow);

 

Om du ska lägga till många rader och har komplexa beroenden är det en bra idé att använda BeginLoadData och EndLoadData för att snabba upp det hela litet. :)

 

/

 

Link to comment
Share on other sites

Archived

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



×
×
  • Create New...