【问题标题】:Changing dataset data for datagrid更改数据网格的数据集数据
【发布时间】:2015-12-21 04:35:04
【问题描述】:

我正在尝试更新数据集中的属性,然后将其显示在数据网格中。但是,当我尝试将日期分配给我的 row.ItemArray[0] 时,它似乎没有更新。不在调试中,也不在数据网格中。

DataSet ds = new DataSet();
connection.Open();
adapter.Fill(ds);

foreach (DataTable table in ds.Tables)
{
    foreach (DataRow row in table.Rows)
    {
        string date = row.ItemArray[0].ToString();
        date = date.Remove(date.Length - 12);
        row.ItemArray[0] = date;

        foreach (object item in row.ItemArray)
        {
            // read item
            //Console.WriteLine(item.ToString());
        }
    }
}
ds.AcceptChanges();
invoicesDataGrid.AutoGenerateColumns = true;
invoicesDataGrid.ItemsSource = ds.Tables[0].DefaultView;

【问题讨论】:

  • 你不能那样做..你需要分配实际的row[0][0] = date
  • @MethodMan :希望在迭代时无法更改集合。
  • 实际上有可能我只是做了它并且它有效..我会在一分钟内发布我的答案我需要快速参加会议
  • 请将您的查询放在这里..您可以在查询中更改此项,因此不再需要此代码

标签: c# wpf datagrid


【解决方案1】:

如下所示进行选择查询

select cast(yourdatecolumnName as date) As date from yourtableName

【讨论】:

  • 我认为您想从日期时间中删除时间。以上查询为此使用完整
  • 我必须通过 odbc 运行它。演员不只给我约会。 ` "SELECT cast(Sales.InvoiceDate as date) AS date, Sales.OutstandingBalance, Sales.InvoiceStatusID, Cards.Name" + "FROM Sales INNER JOIN Cards ON Sales.CardRecordID = Cards.CardRecordID" + "WHERE Sales.InvoiceStatusID=' O' AND Sales.InvoiceDate >= '" + startDate + "' AND Sales.InvoiceDate
【解决方案2】:

将您的代码更改为以下内容。你不需要那么多嵌套的 foreach 循环

DataSet ds = new DataSet();
connection.Open();
adapter.Fill(ds);
DataTable table = ds.Tables[0];

foreach (DataRow row in table.Rows)
{
    for (int i = 0; i < row.ItemArray.Length; i++) 
    {
       string date = row.ItemArray[0].ToString();
       date = date.Remove(date.Length - 12);
       string val = row[i].ToString();
       row[i] = date;
       Debug.WriteLine("oldValue: {0}, newValue: {1}", val, row[i].ToString());
    }
}
invoicesDataGrid.AutoGenerateColumns = true;
invoicesDataGrid.ItemsSource = table.DefaultView;

【讨论】:

  • 这与我之前尝试过的更少循环几乎相同。此代码的唯一问题是 for 循环。由于它已经在行中,我只需要始终修改每行的行 [0]。尽管如此,这仍然行不通。当我在数据网格中看到它时,仍然没有更新。
  • 数据集是否可以具有列的数据类型。例如,我认为 row[0] 作为 dateTime 从数据库中出来。那么,这是否意味着我不能将字符串放入该列?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多