Я пишу интерфейс только для чтения для базы данных и, похоже, не могу найти способ синхронизировать данные.
Я могу сделать запрос к базе данных и поместить результаты в DataTable, а затем присоединить его к DataSet и использовать его в качестве DataSource для DataGridView, с чем я борюсь, обновляя строки в DataTable / DataSet и изменения, отражаемые в DataGridView.
DataTable orders = new DataTable();
DataTable lines = new DataTable();
DataSet dataSet = new DataSet();
private string orderQuery = "SELECT oh_ord_no AS OrderID, oh_stat AS OrderStatus, oh_cu_no AS CustomerID, cus_name AS CustomerName, cus_price_no AS PriceBand, cus_ac_manager AS AccountManager, oh_ord_type AS OrderType, oh_ord_ref AS OrderReference, oh_del_meth AS DeliveryMethod, oh_op_no AS InputBy, oh_route_no AS Route, CAST(SQL_DATE,DATEADD(day,-1,oh_ord_date)) AS OrderDate, CAST(SQL_DATE,DATEADD(day,-1,oh_del_date)) AS DeliveryDate, oh_head_text AS HeaderText, oh_foot_text AS FooterText, oh_total_units AS TotalUnits, oh_ord_value AS OrderValue, CAST(SQL_DATE,DATEADD(day,oh_status_change_date,'1899-12-31')) AS StatusChangeDate, oh_status_change_time AS StatusChangeTime, oh_conf_no FROM admin.sffoh1 LEFT JOIN admin.sdfcus ON oh_cu_no = cus_no";
private string orderLines = "SELECT ilf_ord_no AS OrderID, ilf_prod_ptr AS ProductID FROM admin.sffilf";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
orders = SwordsData.GetData(orderQuery, "orders");
orders.AcceptChanges();
lines = SwordsData.GetData(orderLines, "lines");
dataSet.Tables.Add(orders);
dataSet.Tables.Add(lines);
dataview.DataSource = dataSet;
dataview.DataMember = "orders";
}
private void timer1_Tick(object sender, EventArgs e)
{
orders.Reset();
orders = SwordsData.GetData(orderQuery, "orders");
lines = SwordsData.GetData(orderLines, "lines");
dataSet.GetChanges();
}
Это то, что я имею до сих пор. Я просто не могу найти что-нибудь в Интернете, чтобы помочь мне: (
Буду очень признателен за любую помощь или совет.
Lee.