none
如何能在DATAGRIDVIEW 控件中显示数据库中的记录 RRS feed

  • 问题

  • 窗体中有五个RICHTEXTBOX ,填入内容后,将其转化为MemoryStream,存入数据库,保存为一条记录。现想在DATAGRIDVIW中显示数据库中的全部这种类型的记录,该如何实现? 另,DATAGRIDVIW能绑定RICHTEXTBOX控件吗?
    2011年2月10日 8:31

答案

  • 你好!

    用 DataSet 做为绑定的数据源(或新建数据集 *.xsd) ,保存数据时将 dataset 转换成  xml  后再保存到数据库,显示时将数据库中的 xml 转换成 dataset 再绑定到  dataGridView。具体方法如下:

    DataSet ds = new DataSet();
    
    string xml = "从数据库获取的 xml 字符串。";
    using (var reader = new System.IO.StringReader(xml))
    {
      ds.ReadXml(reader); // 将xml字符串填充到 DataSet 中
    }
    
    using (var writer = new System.IO.StringWriter())
    {
      ds.WriteXml(writer);
      xml = writer.ToString(); // 将 dataset 写成字符串
    }
    

    如需要显示多条可以使用 DataSet.Merge 方法合并数据集,但要求结构一样。

    关于 RichTextBox 建议在 DataGridView 下方拖放 RichTextBox 在点击 DataGridView 某行时,再将这行相应的富文本信息显示到 RichTextBox 中。


    知识改变命运,奋斗成就人生!
    2011年2月10日 9:49
    版主
  • 您好,是否可以把Richtextbox转成base64的格式的xml然后存入数据库,显示时再转换。

    关于DataGridview绑定的问题,请参考:http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx

    2011年2月10日 10:25
    版主
  • dear
    你应该用同一份BindingSource(DataTable),分别绑定到DataGridView以及RichTextBox,详细做法请参考。

    [ADO.NET] 使用 BindingSource 與 bindingNavigator
    http://www.dotblogs.com.tw/yc421206/archive/2010/09/21/17831.aspx

    [ADO.NET] 如何使用 ControlBindingsCollection 繫結簡單控制項
    http://www.dotblogs.com.tw/yc421206/archive/2009/10/30/11360.aspx

    1.冩挡-用DataTable.WriteXml方法除存成xml格式
    2.读挡-用DataTable.ReadXmlSchema读取栏位格式,用DataTable.ReadXml读取栏位资料


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年2月10日 10:28

全部回复

  • 你好!

    用 DataSet 做为绑定的数据源(或新建数据集 *.xsd) ,保存数据时将 dataset 转换成  xml  后再保存到数据库,显示时将数据库中的 xml 转换成 dataset 再绑定到  dataGridView。具体方法如下:

    DataSet ds = new DataSet();
    
    string xml = "从数据库获取的 xml 字符串。";
    using (var reader = new System.IO.StringReader(xml))
    {
      ds.ReadXml(reader); // 将xml字符串填充到 DataSet 中
    }
    
    using (var writer = new System.IO.StringWriter())
    {
      ds.WriteXml(writer);
      xml = writer.ToString(); // 将 dataset 写成字符串
    }
    

    如需要显示多条可以使用 DataSet.Merge 方法合并数据集,但要求结构一样。

    关于 RichTextBox 建议在 DataGridView 下方拖放 RichTextBox 在点击 DataGridView 某行时,再将这行相应的富文本信息显示到 RichTextBox 中。


    知识改变命运,奋斗成就人生!
    2011年2月10日 9:49
    版主
  • 您好,是否可以把Richtextbox转成base64的格式的xml然后存入数据库,显示时再转换。

    关于DataGridview绑定的问题,请参考:http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx

    2011年2月10日 10:25
    版主
  • dear
    你应该用同一份BindingSource(DataTable),分别绑定到DataGridView以及RichTextBox,详细做法请参考。

    [ADO.NET] 使用 BindingSource 與 bindingNavigator
    http://www.dotblogs.com.tw/yc421206/archive/2010/09/21/17831.aspx

    [ADO.NET] 如何使用 ControlBindingsCollection 繫結簡單控制項
    http://www.dotblogs.com.tw/yc421206/archive/2009/10/30/11360.aspx

    1.冩挡-用DataTable.WriteXml方法除存成xml格式
    2.读挡-用DataTable.ReadXmlSchema读取栏位格式,用DataTable.ReadXml读取栏位资料


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年2月10日 10:28