Ajout d'une Liste<string> DataTable
J'ai créé une bibliothèque de classe et je suis en train d'ajouter des données à partir d'un List<string[]>
à un DataGridView.
La chaîne est dans le format suivant:
"Test, 1^Glucose^10/24/2013 10:00;Test, 2^BUN^10/25/2013 11:00;Test, 3^BUN^10/25/2013 11:00"
Je suis de passage à la chaîne à partir d'un autre programme. J'ai alors une en faire une liste et ensuite essayer de l'ajouter à la DataTable
mais pas de chance. J'ai créé le datagridview avec quatre colonnes.
Sélectionné - Case
Nom Du Patient - Chaîne
Ordre Nom - Chaîne
Date De Commande - Chaîne
Raison - Combo
J'obtiens une erreur:
la liste est plus grande que le nombre de colonnes.
Note: je peux faire de la chaîne de toute façon je veux avant de passer à ce programme donc, si j'ai besoin de faire quelque chose avec la chaîne avant de la transmettre au programme, s'il vous plaît laissez-moi savoir. Est-il un moyen plus facile?
Je veux juste que les données à afficher et je vais travailler sur le reste.
Toute aide serait appréciée.
C'est mon code:
public partial class RenewOrders : Form
{
public static string strMLMPatientData = string.Empty;
public RenewOrders(string all_patient_data)
{
InitializeComponent();
strMLMPatientData = "Test, 1^Glucose^10/24/2013 10:00;Test, 2^BUN^10/25/2013 11:00;Test, 3^BUN^10/25/2013 11:00"
}
private void RenewOrders_Load(object sender, EventArgs e)
{
this.ConvertStringToList(strMLMPatientData);
}
private void ConvertStringToList(string strMLMPatientData)
{
var patient_list = strMLMPatientData.Split(';').Select(x => x.Split('^')).ToList();
DataTable dtTable = ConvertListToDataTable(patient_list);
dataGridView1.DataSource = dtTable;
}
//Convert to DataTable.
static DataTable ConvertListToDataTable(List<string[]> patient_list)
{
//New table.
DataTable dtTable = new DataTable();
dtTable.Columns.Add("Name", typeof(string));
dtTable.Columns.Add("Order Name", typeof(string));
dtTable.Columns.Add("Order Date/Time", typeof(string));
foreach (var row in patient_list)
{
table.Rows.Add(row);
}
return dtTable;
}
}
OriginalL'auteur eusanpe | 2013-06-15
Vous devez vous connecter pour publier un commentaire.
Abord, vous avez besoin de cracher la chaîne de manière appropriée pour obtenir une liste de tableaux de chaîne. Quelque chose comme ceci:
ou encore mieux:
Vous avez besoin de Linq pour cela, mais vous obtenez l'idée.
Ensuite, vous devez ajouter des colonnes de votre tableau de données. Vous ne pouvez pas ajouter des lignes pour quand il n'y a pas de colonnes..
Essayer quelque chose comme cela dans votre fonction
Voir un exemple ici. Comme il est, votre séparées par des virgules chaîne d'entrée ne semble pas correspondre à votre tableau de données de la colonne de la structure. Vous avez besoin de travailler. Mais j'espère que vous avez compris l'idée où aller.
Quelle est l'erreur que vous obtenez? Veuillez mettre à jour la question auprès d'un échantillon
List<string>
. l'on vous a donné est très vague.J'ai ajouté ce que la chaîne se présente comme dans le code. Recherchez la chaîne strMLMPatientData. J'ai besoin de diviser chaque groupe par le point-virgule et ajouter chaque élément dans le groupe de la grille. Cela vous aide? Serait-il plus facile de passer chaque corde individuellement, comme les noms, les commandes, les dates?
Vous avez raison, quand je pense à ce sujet. Permettez-moi de refaire cette et supprimer les guillemets, sauf au début et à la fin.
Je suis probablement besoin de formater ma chaîne de caractères différents pour le partage de l'puisque "Test 1" est un nom de patient et il a une virgule de sorte qu'il sera partagé également quand il ne devrait pas l'être. J'ai besoin de trouver un autre personnage qui n'est pas utilisé.
OriginalL'auteur nawfal