I am completely new at coding. I felt like I was learning quickly and then of course was humbled by all there is in this world. I am currently trying to figure out if you can print DataTable Columns beside each other instead of up and down.
Here is some code that I wrote(experimenting because I feel like I have no idea anymore):
private void DataClaimsTable()
{
Console.Clear();
Queue<Claims> allInQueue = _claimsRepo.GetClaims();
DataTable claimsDT = new DataTable("Komodo Insurance Claims");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(String.Format("{0," + ((Console.WindowWidth / 2) + (claimsDT.TableName.Length / 2)) + "}", claimsDT));
Console.ResetColor();
DataColumn idColumn = new DataColumn("Claim ID", typeof(int));
DataColumn typeColumn = new DataColumn("Claim Type", typeof(Enum));
DataColumn descriptionColumn = new DataColumn("Description", typeof(string));
DataColumn amountColumn = new DataColumn("Amount", typeof(decimal));
DataColumn accidentColumn = new DataColumn("Date of Accident", typeof(DateTime));
DataColumn claimColumn = new DataColumn("Date of Claim", typeof(DateTime));
DataColumn validColumn = new DataColumn("Valid Claim", typeof(bool));
claimsDT.Columns.Add(idColumn);
claimsDT.Columns.Add(typeColumn);
claimsDT.Columns.Add(descriptionColumn);
claimsDT.Columns.Add(amountColumn);
claimsDT.Columns.Add(accidentColumn);
claimsDT.Columns.Add(claimColumn);
claimsDT.Columns.Add(validColumn);
DataRow idRow;
Console.WriteLine(idColumn);
foreach (Claims idPrint in allInQueue)
{
idRow = claimsDT.NewRow();
idRow["Claim ID"] = idPrint.ClaimID;
claimsDT.Rows.Add(idRow);
Console.WriteLine(idRow[0]);
}
Console.WriteLine();
DataRow typeRow;
Console.WriteLine(typeColumn);
foreach (Claims typePrint in allInQueue)
{
typeRow = claimsDT.NewRow();
typeRow["Claim Type"] = typePrint.ClaimType;
claimsDT.Rows.Add(typeRow);
Console.WriteLine(typeRow[1]);
}
Console.WriteLine();
DataRow descriptionRow;
Console.WriteLine(descriptionColumn);
foreach (Claims descriptionPrint in allInQueue)
{
descriptionRow = claimsDT.NewRow();
descriptionRow["Description"] = descriptionPrint.ClaimDescription;
claimsDT.Rows.Add(descriptionRow);
Console.WriteLine(descriptionRow[2]);
}
Console.WriteLine();
DataRow amountRow;
Console.WriteLine(amountColumn);
foreach (Claims amountPrint in allInQueue)
{
amountRow = claimsDT.NewRow();
amountRow["Amount"] = amountPrint.ClaimAmount;
claimsDT.Rows.Add(amountRow);
Console.WriteLine(amountRow[3]);
}
Console.WriteLine();
DataRow dateOfAccidentRow;
Console.WriteLine(accidentColumn);
foreach (Claims dateOfAccidentPrint in allInQueue)
{
dateOfAccidentRow = claimsDT.NewRow();
dateOfAccidentRow["Date of Accident"] = dateOfAccidentPrint.DateOfAccident;
claimsDT.Rows.Add(dateOfAccidentRow);
Console.WriteLine(dateOfAccidentRow[4]);
}
Console.WriteLine();
DataRow dateOfClaimRow;
Console.WriteLine(claimColumn);
foreach (Claims dateOfClaimPrint in allInQueue)
{
dateOfClaimRow = claimsDT.NewRow();
dateOfClaimRow["Date of Claim"] = dateOfClaimPrint.DateOfClaim;
claimsDT.Rows.Add(dateOfClaimRow);
Console.WriteLine(dateOfClaimRow[5]);
}
Console.WriteLine();
DataRow isValidRow;
Console.WriteLine(validColumn);
foreach (Claims isValidPrint in allInQueue)
{
isValidRow = claimsDT.NewRow();
isValidRow["Valid Claim"] = isValidPrint.IsValid;
claimsDT.Rows.Add(isValidRow);
Console.WriteLine(isValidRow[6]);
}
Console.WriteLine();
}
Output:
Komodo Insurance Claims
Claim ID
1
2
Claim Type
Car
Home
Description
Rear bumper hit at traffic light.
Burned down due to unsupervised child.
Amount
3000.00
12000.00
Date of Accident
4/9/2020 12:00:00 AM
3/12/2020 12:00:00 AM
Date of Claim
4/9/2020 12:00:00 AM
4/14/2020 12:00:00 AM
Valid Claim
True
False
Press any key to continue...
I have modified your existing code so that it can print the DataColumns beside each other.
Also, You don't need multiple for
loops to map your Queue
object to DataRow
. Refer the below code for more information:
private static void DataClaimsTable()
{
Console.Clear();
Queue<Claims> allInQueue = _claimsRepo.GetClaims();
DataTable claimsDT = new DataTable("Komodo Insurance Claims");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(String.Format("{0," + ((Console.WindowWidth / 2) + (claimsDT.TableName.Length / 2)) + "}", claimsDT));
Console.ResetColor();
DataColumn idColumn = new DataColumn("Claim ID", typeof(int));
DataColumn typeColumn = new DataColumn("Claim Type", typeof(Enum));
DataColumn descriptionColumn = new DataColumn("Description", typeof(string));
DataColumn amountColumn = new DataColumn("Amount", typeof(decimal));
DataColumn accidentColumn = new DataColumn("Date of Accident", typeof(DateTime));
DataColumn claimColumn = new DataColumn("Date of Claim", typeof(DateTime));
DataColumn validColumn = new DataColumn("Valid Claim", typeof(bool));
claimsDT.Columns.Add(idColumn);
claimsDT.Columns.Add(typeColumn);
claimsDT.Columns.Add(descriptionColumn);
claimsDT.Columns.Add(amountColumn);
claimsDT.Columns.Add(accidentColumn);
claimsDT.Columns.Add(claimColumn);
claimsDT.Columns.Add(validColumn);
DataRow idRow;
Console.WriteLine(idColumn);
foreach (Claims idPrint in allInQueue)
{
idRow = claimsDT.NewRow();
idRow["Claim ID"] = idPrint.ClaimID;
idRow["Claim Type"] = idPrint.ClaimType;
idRow["Description"] = idPrint.ClaimDescription;
idRow["Amount"] = idPrint.ClaimAmount;
idRow["Date of Accident"] = idPrint.DateOfAccident;
idRow["Date of Claim"] = idPrint.DateOfClaim;
idRow["Valid Claim"] = idPrint.IsValid;
claimsDT.Rows.Add(idRow);
}
PrintDataTable(claimsDT);
Console.WriteLine();
}
private static void PrintDataTable(DataTable table)
{
Console.WriteLine("{0,10}\t{1,10}\t{2,10}\t{3,10}\t{4,25}\t{5,25}\t{6,10}",
"Claim ID",
"Claim Type",
"Description",
"Amount",
"Date of Accident",
"Date of Claim",
"Valid Claim"
);
foreach (DataRow row in table.Rows)
{
Console.WriteLine("{0,10}\t{1,10}\t{2,10}\t{3,10}\t{4,25}\t{5,25}\t{6,10}",
row["Claim ID"],
row["Claim Type"],
row["Description"],
row["Amount"],
row["Date of Accident"],
row["Date of Claim"],
row["Valid Claim"]
);
}
}
The PrintDataTable
method will print your datatable in the tabular format. In this the string is formatted properly with {0,10}
where 10 indicates number of spaces to allocate and \t
for allocating tab space. You can play around these values to properly format data. For more information on formatting the output data refer Microsoft document for Composite-Formatting
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras