Ich versuche eine Kundenliste von Customers.cs
in MainForm.cs
zu bekommen. Gibt es eine Möglichkeit, die Liste von Customers.cs
ohne Verwendung eines SQL-Servers zu bekommen? Ich möchte, dass der Vorname unter dem Spaltennamen colFirstName
und der Nachname unter dem Spaltennamen colLastName
auf dem MainForm.cs
angezeigt wird. Ich habe einen Code, den ich für MainForm.cs
verwendet habe, um die sql
Kundenliste zu erhalten, aber ich bin erforderlich, um die Kundenliste zu erhalten, ohne eine sql
Verbindung zu verwenden.Wie bekomme ich eine Kundenliste in eine winforms App?
Customers.cs
Code
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassProject2.Data
{
public class Customers
{
public Customers()
{
_customers = new List<Customer>() //Customer list
{
new Customer(_ids.Next())
{
FirstName = "Bob",
LastName = "Miller"
},
new Customer(_ids.Next())
{
FirstName = "Sue",
LastName = "Storm"
},
new Customer(_ids.Next())
{
FirstName = "Peter",
LastName = "Parker"
}
};
}
public Customer Add (Customer customer)
{
if (customer == null)
throw new ArgumentNullException(nameof(customer));
Validator.ValidateObject(customer, new ValidationContext(customer));
if (_customers.Any(c => String.Compare(c.FirstName, customer.FirstName, true) == 0 &&
String.Compare(c.LastName, customer.LastName, true) == 0))
throw new ArgumentException("Customer already exists.", nameof(customer));
customer.Id = _ids.Next();
_customers.Add(customer);
return customer;
}
public Customer Get (int id)
{
return (from c in _customers
where id == c.Id
select c
).FirstOrDefault();
}
public IEnumerable<Customer> GetAll()
{
return _customers;
}
public void Remove(int id)
{
//Verify > 0
if (id <= 0)
throw new ArgumentOutOfRangeException("Id must be > 0", nameof(id));
//Find the item
var item = _customers.FirstOrDefault(i => i.Id == id);
//Remove it
if (item != null)
_customers.Remove(item);
}
private readonly List<Customer> _customers;
private readonly Sequence _ids = new Sequence(100);
}
}
-Code, die ich für MainForm.cs
verwendet
private void IsLinkClicked(MouseEventArgs e)
{
try
{
if (e.Button != MouseButtons.Left) return;
DataGridView.HitTestInfo Hti = gridCustomers.HitTest(e.X, e.Y);
if (Hti.Type == DataGridViewHitTestType.Cell)
{
if (gridCustomers.Rows.Count > 0)
{
gridCustomers.CurrentCell = gridCustomers[Hti.ColumnIndex, Hti.RowIndex];
}
}
if(Hti.ColumnIndex < 0 || Hti.ColumnIndex > gridCustomers.ColumnCount)
{
value = false;
}
CustomerForm cf = new CustomerForm();
cf.editMode = true;
int rowIndex = gridCustomers.CurrentCell.RowIndex;
cf.id = gridCustomers.Rows[rowIndex].Cells["colId"].Value.ToString();
cf.FName = gridCustomers.Rows[rowIndex].Cells["colFirstName"].Value.ToString();
cf.LName = gridCustomers.Rows[rowIndex].Cells["colLastName"].Value.ToString();
cf.Show();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
nicht zu ändern, das ist genau das was ich gesucht habe. –
Markieren Sie es, sobald es angezeigt wurde –