【问题标题】:C# problem with filling datagrid with multiple datasource用多个数据源填充数据网格的 C# 问题
【发布时间】:2011-04-07 05:18:34
【问题描述】:

嘿,朋友们,我的程序中有 datagridview。我需要从数据库中填充数据网格,但是一列,即名为“TIME”,我必须从以相同形式存在的日期时间选择器中填充它。 在 LOAD 按钮中,当我单击它时,datagridview 应该填充数据库中的记录以及名为 TIME 的列中的数据时间选择器的值。因此,如果有人发送解决方案,我将非常感激。

【问题讨论】:

  • 也许您可以在将object 作为datasource 分配给datagridview 之前将datetime picker 中的值添加到object
  • 在此处需要更多信息:您是数据绑定吗?如果是这样,您将数据绑定到哪种对象?
  • 添加您的代码,说明您到目前为止所做的事情

标签: c# datagrid datasource


【解决方案1】:

您可以将 datetimepicker 值设置为 sqlcommand,如下所示:

select field1, field2, ... , datetimepicker.value
from table_name
where your_conditions

请测试一下。而且我认为它比向数据表添加新列并在数据表填充后将其值设置为 datetimepicker.value 更快

【讨论】:

    【解决方案2】:

    如果您使用 DataSet/DataAdapter 来绑定 Grid,您可以这样做:

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter();
        da.Fill(ds);
        DataTable dt = ds.Tables[0];
    
        DataColumn dc = new DataColumn("TIME", typeof(System.DateTime));
        dc.DefaultValue = dataTimePicker.SelectedDate;
    
        dt.Columns.Add(dc);
        grdView.DataSource = dt;
        grdView.DataBind();
    

    【讨论】:

    • 嘿,谢谢解决方案,在我的项目中进行了一些修改后它运行良好。
    【解决方案3】:

    我认为您可以使用数据绑定事件来添加额外的列。根据您的框架版本和网格类型(Datagrid 或 Gridview),事件略有不同。

    基本思想是每次将一行添加到网格时都会调用该事件,并且您将自己的值动态添加到您指定的另一列中。抱歉,我不能提供更多,但根据您提供的内容,我只能提供。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      相关资源
      最近更新 更多