Ajout de lignes de la Table de données en c#
Je suis en train de travailler sur un projet et je veux ajouter des lignes à la Datatable et ce qui se passe est que si je suis de l'extraction de deux lignes à partir de la base de données de l'un des deux seulement est ajoutée à la datatable, mais je veux à la fois être ajouté à la datatable je.e la datatable n'est pas en mesure de tenir les données de la première ligne,les données sont en cours de réécriture des données de la deuxième rangée.
le code de la méthode est.
c'est mon instruction d'appel.
DataTable dttable = new DataTable();
dttable = gettable(dtgreater, dtcurrentdate);
public DataTable gettable(List<DateTime> objct1, DateTime objct2)
{
DataTable data=null;
for (int j = 0; j < dtgreater.Count; j++)
{
sql = "select library_issue.STUDENTCODE,library_issue.studentname,library_book.bookname,library_issue.issuedate,library_issue.returndate from library_issue join library_book on library_book.book_id = library_issue.book_id where library_issue.returndate ='" + objct1[j].ToString("dd/MM/yyyy") + "'";
ds = obj.openDataset(sql, Session["SCHOOLCODE"].ToString());
Label1.Text = (ds.Tables[0].Rows.Count).ToString();
data = new DataTable();
data.Columns.Add("STUDENTCODE", typeof(int));
data.Columns.Add("Studentname", typeof(string));
data.Columns.Add("Bookname", typeof(string));
data.Columns.Add("Issuedate", typeof(string));
data.Columns.Add("Returndate", typeof(string));
data.Columns.Add("NO of Days Exceeded", typeof(string));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TimeSpan ts = objct1[j] - objct2;
Label1.Text = ts.ToString("dd");
data.Rows.Add(ds.Tables[0].Rows[i]["STUDENTCODE"], ds.Tables[0].Rows[i]["studentname"], ds.Tables[0].Rows[i]["bookname"], ds.Tables[0].Rows[i]["issuedate"], ds.Tables[0].Rows[i]["returndate"], ts.ToString("dd"));
}
}
return data;
}
Mise à JOUR:
public DataTable gettable(List<DateTime> objct1, DateTime objct2)
{
DataTable data = new DataTable();
data.Columns.Add("STUDENTCODE", typeof(int));
data.Columns.Add("Studentname", typeof(string));
data.Columns.Add("Bookname", typeof(string));
data.Columns.Add("Issuedate", typeof(string));
data.Columns.Add("Returndate", typeof(string));
data.Columns.Add("NO of Days Exceeded", typeof(string));
for (int j = 0; j < dtgreater.Count; j++)
{
sql = "select library_issue.STUDENTCODE,library_issue.studentname,library_book.bookname,library_issue.issuedate,library_issue.returndate from library_issue join library_book on library_book.book_id = library_issue.book_id where library_issue.returndate ='" + objct1[j].ToString("dd/MM/yyyy") + "'";
ds = obj.openDataset(sql, Session["SCHOOLCODE"].ToString());
Label1.Text = (ds.Tables[0].Rows.Count).ToString();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TimeSpan ts = objct1[j] - objct2;
Label1.Text = ts.ToString("dd");
data.Rows.Add(ds.Tables[0].Rows[i]["STUDENTCODE"], ds.Tables[0].Rows[i]["studentname"], ds.Tables[0].Rows[i]["bookname"], ds.Tables[0].Rows[i]["issuedate"], ds.Tables[0].Rows[i]["returndate"], ts.ToString("dd"));
}
}
return data;
}
Discription: Comme je l'ai été de l'initialisation de la table de données à l'intérieur de la boucle for qui était à l'origine de la création de la nouvelle instance de datatable à chaque fois .
Comme un résultat de qui j'ai été d'obtenir un seul des lignes à chaque fois.
OriginalL'auteur Ashish | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
De la création de la table de données à l'intérieur de la boucle, donc, dans la deuxième itération, il va jeter la première table de données avec le premier élément et créer un nouveau vide pour le deuxième point.
Créer la table de données et ajouter des colonnes à l'avant de la boucle:
Où obtenez-vous cette erreur? Il n'y a qu'un seul endroit où la colonne est ajoutée, et c'est immédiatement après la un nouveau, vide de la table de données est créé.
OriginalL'auteur Guffa
Lieu la création de la table à l'extérieur de la boucle.
Il est probablement préférable d'utiliser un
foreach
comme ceci:Par exemple:
OriginalL'auteur Nick N.
Supprimer la ligne :
data = new DataTable();
Créer la Table de données à l'extérieur de la boucle comme ci-dessous...
il permettra de résoudre votre problème...
Dans le moment de l'exécution à la ligne à laquelle vous eu cette erreur...? Pouvez-vous indiquer que la ligne
OriginalL'auteur Pandian
Ce que vous pouvez faire ici est de
Je suppose que cela fonctionne pour vous
OriginalL'auteur Rohit
OriginalL'auteur oen
OriginalL'auteur Unknown