C# DataTable 详解

参考:https://www.cnblogs.com/Sandon/p/5175829.html

http://blog.csdn.net/singgel/article/details/51833116

 namespace DXApplication1XtraTabControl
{
public partial class Form1 : DevExpress.XtraEditors.XtraForm
{
public Form1()
{
InitializeComponent(); }
private DataTable CSUHInitDt()
{
DataTable csuhDt = new DataTable("CSUH");
csuhDt.Columns.Add("下限", typeof(double));
csuhDt.Columns.Add("上限", typeof(double));
csuhDt.Columns.Add("精度", typeof(double));
csuhDt.Rows.Add(new object [] { 0.50, 1.80, 0.01 });
csuhDt.Rows.Add(new object[] { 0.010, 0.250, 0.001 });
csuhDt.Rows.Add(new object[] { 0.01, 0.10, 0.01 });
csuhDt.Rows.Add(new object[] { 0.01, 0.49, 0.01 });
csuhDt.Rows.Add(new object[] { 0.20, 2.50, 0.01 });
csuhDt.Rows.Add(new object[] { 0.10, 1.00, 0.01 });
csuhDt.Rows.Add(new object[] { 0.1, 5.0, 0.1 });
csuhDt.Rows.Add(new object[] { 0.10, 1.25, 0.01 });
return csuhDt;
}
private void BindDataSource(DataTable dt)
{
//绑定DataTable
gridControl1.DataSource = dt;
//绑定DataSet
//gridControl1.DataSource = ds;
//gridControl1.DataMember = "表名";
} private void simpleButton1_Click(object sender, EventArgs e)
{
xtraTabControl1.SelectedTabPage = xtraTabPage2;
xtraTabControl3.SelectedTabPage = xtraTabPage7;
} private void simpleButton2_Click(object sender, EventArgs e)
{
xtraTabControl1.SelectedTabPage = xtraTabPage5;
BindDataSource(CSUHInitDt());
}
}
}

CSUH本构模型上下限

效果:

调试是在这个地方可以看到内容:

datatable-Rows-结果视图-[i]-ItemArray


 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml; namespace DXApplication1XtraTabControl
{
public partial class Form1 : DevExpress.XtraEditors.XtraForm
{
public Form1()
{
InitializeComponent(); }
private DataTable CSUHInitDt()
{
DataTable csuhDt = new DataTable("CSUH");
csuhDt.Columns.Add("参数", typeof(string));
csuhDt.Columns.Add("下限", typeof(double));
csuhDt.Columns.Add("上限", typeof(double));
csuhDt.Columns.Add("精度", typeof(double));
csuhDt.Rows.Add(new object[] { "M", 0.50, 1.80, 0.01 });
csuhDt.Rows.Add(new object[] {"λ", 0.010, 0.250, 0.001 });
csuhDt.Rows.Add(new object[] { "κ",0.01, 0.10, 0.01 });
csuhDt.Rows.Add(new object[] { "ν",0.01, 0.49, 0.01 });
csuhDt.Rows.Add(new object[] {"N", 0.20, 2.50, 0.01 });
csuhDt.Rows.Add(new object[] { "χ",0.10, 1.00, 0.01 });
csuhDt.Rows.Add(new object[] {"m", 0.1, 5.0, 0.1 });
csuhDt.Rows.Add(new object[] {"Z", 0.10, 1.25, 0.01 });
return csuhDt;
}
private void BindDataSource(DataTable dt)
{
//绑定DataTable
gridControl1.DataSource = dt;
gridView1.OptionsCustomization.AllowColumnMoving = false;//如何让各列头禁止移动
gridView1.OptionsCustomization.AllowFilter = false;//不允许过滤
gridView1.OptionsCustomization.AllowSort = false;//不允许排序
gridView1.OptionsCustomization.AllowGroup = false;//不允许分组
gridView1.OptionsView.ShowGroupPanel = false;//不显示组面板
gridView1.OptionsSelection.MultiSelect = true;//可以多选
gridView1.OptionsSelection.MultiSelectMode =
DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect;//RowSelect; //选择模式MultiSelectMode = CheckBoxRowSelect,
gridView1.OptionsView.ColumnAutoWidth = true;//列宽自动
gridView1.OptionsCustomization.AllowColumnResizing = false;//不允许改变列宽
gridView1.OptionsBehavior.Editable = true;//允许编辑
gridView1.OptionsView.EnableAppearanceEvenRow = true;//设置奇、偶行交替颜色
gridView1.OptionsView.EnableAppearanceOddRow = true;//设置奇、偶行交替颜色
gridView1.Appearance.EvenRow.BackColor=Color.DeepSkyBlue;
gridView1.Appearance.OddRow.BackColor = Color.CornflowerBlue;
this.gridView1.IndicatorWidth = ;//设置显示行号的列宽
MessageBox.Show((gridView1.GetDataRow()[]).ToString ());//获取第二行第二列数据,下标从零开始 //.AllowFilter = False
//绑定DataSet
//gridControl1.DataSource = ds;
//gridControl1.DataMember = "表名";
} private void simpleButton1_Click(object sender, EventArgs e)
{
xtraTabControl1.SelectedTabPage = xtraTabPage2;
xtraTabControl3.SelectedTabPage = xtraTabPage7;
} private void simpleButton2_Click(object sender, EventArgs e)
{
xtraTabControl1.SelectedTabPage = xtraTabPage5;
BindDataSource(CSUHInitDt());
} private void simpleButton3_Click(object sender, EventArgs e)
{
////创建xmldoc的xml文档
//XmlDocument xmldoc = new XmlDocument();
////加入XML的声明段落:<?xmlversion="1.0" encoding="utf-8"?>
//XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
//xmldoc.AppendChild(xmldecl);
////创建根节点
//XmlElement xmlroot = xmldoc.CreateElement("user");
//xmldoc.AppendChild(xmlroot);
////创建根节点的子节点
//XmlElement ePerson = xmldoc.CreateElement("person");
//ePerson.SetAttribute("name:姓名", "张三");
//ePerson.SetAttribute("年龄", "21");
//ePerson.SetAttribute("身高", "168");
//xmlroot.AppendChild(ePerson); //ePerson = xmldoc.CreateElement("person");
//ePerson.SetAttribute("name:姓名", "李四");
//ePerson.SetAttribute("年龄", "24");
//ePerson.SetAttribute("身高", "172");
//xmlroot.AppendChild(ePerson); //ePerson = xmldoc.CreateElement("person");
//ePerson.SetAttribute("name:姓名", "赵六");
//ePerson.SetAttribute("年龄", "29");
//ePerson.SetAttribute("身高", "178");
//xmlroot.AppendChild(ePerson); //ePerson = xmldoc.CreateElement("person");
//ePerson.SetAttribute("姓名", "王麻子");
//ePerson.SetAttribute("年龄", "25");
//ePerson.SetAttribute("身高", "198");
//xmlroot.AppendChild(ePerson);
//ePerson.Attributes["姓名"].Value = "猪猪";//直接就可以最后一个person的姓名改为“猪猪” //创建xmldoc的xml文档
XmlDocument xmldoc = new XmlDocument();
//加入XML的声明段落:<?xmlversion="1.0" encoding="utf-8"?>
XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xmldecl);
//创建根节点
XmlElement xmlroot = xmldoc.CreateElement("CSUH");
xmldoc.AppendChild(xmlroot);
//创建根节点的子节点
XmlElement eParameter = xmldoc.CreateElement("M");
eParameter.SetAttribute("下限", "0.50");
eParameter.SetAttribute("上限", "1.80");
eParameter.SetAttribute("步长", "0.01");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("λ");
eParameter.SetAttribute("下限", "0.010");
eParameter.SetAttribute("上限", "0.250");
eParameter.SetAttribute("步长", "0.001");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("κ");
eParameter.SetAttribute("下限", "0.01");
eParameter.SetAttribute("上限", "0.10");
eParameter.SetAttribute("步长", "0.01");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("ν");
eParameter.SetAttribute("下限", "0.01");
eParameter.SetAttribute("上限", "0.49");
eParameter.SetAttribute("步长", "0.01");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("N");
eParameter.SetAttribute("下限", "0.20");
eParameter.SetAttribute("上限", "2.50");
eParameter.SetAttribute("步长", "0.01");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("χ");
eParameter.SetAttribute("下限", "0.10");
eParameter.SetAttribute("上限", "1.00");
eParameter.SetAttribute("步长", "0.01");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("m");
eParameter.SetAttribute("下限", "0.1");
eParameter.SetAttribute("上限", "5.0");
eParameter.SetAttribute("步长", "0.1");
xmlroot.AppendChild(eParameter); eParameter = xmldoc.CreateElement("Z");
eParameter.SetAttribute("下限", "0.10");
eParameter.SetAttribute("上限", "1.25");
eParameter.SetAttribute("步长", "0.01");
xmlroot.AppendChild(eParameter); ////设置属性以及文本节点
////方法一 //person1.SetAttribute("name", "张三");
////方法二:这种方法可以用来获取和设置属性值,但前提是该属性要存在
//person2.Attributes["name"].Value = "张三三"; //保存创建好的XML文档
xmldoc.Save(@"D:\CSUH.xml");
MessageBox.Show("xml输出完成!", "提醒");
} private void gridControl1_Click(object sender, EventArgs e)
{
//if (e.Info.IsRowIndicator && e.RowHandle >= 0)
//{
// e.Info.DisplayText = (e.RowHandle + 1).ToString();
//}
}
//显示行号
private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= )
{
e.Info.DisplayText = (e.RowHandle + ).ToString();
}
}
//单元的值变化的时候引起的事件
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
string s = string.Format("第{0}行,第{1}列,值改变为:{2:F5}。", e.RowHandle.ToString(), e.Column.VisibleIndex.ToString(), (e.Value).ToString());
MessageBox.Show(s); }
//得到GridControl单元格的值: string d =gridView1.GetRowCellDisplayText(i,col); i代表行号,col代表标题 } }

代码设定我需要的gridcontrol格式

效果如下:



https://jingyan.baidu.com/article/25648fc1d46dfb9191fd00c0.html

             //绑定DataTable
gridControl1.DataSource = dt;
gridView1.OptionsCustomization.AllowColumnMoving = false;//如何让各列头禁止移动
gridView1.OptionsCustomization.AllowFilter = false;//不允许过滤
gridView1.OptionsCustomization.AllowSort = false;//不允许排序
gridView1.OptionsCustomization.AllowGroup = false;//不允许分组
gridView1.OptionsView.ShowGroupPanel = false;//不显示组面板
gridView1.OptionsSelection.MultiSelect = true;//可以多选

gridcontrol-gridview各种设置


添加行号:

参考:http://www.cnblogs.com/liulunet/archive/2011/08/08/2131227.html

取第三行第三列单元格的值:
gridView2.GetDataRow(2)[2]
         private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= )
{
e.Info.DisplayText = (e.RowHandle + ).ToString();
}
}

gridcontrol-GridView显示行号

4.得到GridControl的列数
int a =gridView1.Columns.Count;
5.得到GridControl的行数
int b =gridView1.RowCount;
6.得到GridControl的列标题的值
DevExpress.XtraGrid.Columns.GridColumn col = gridView1.Columns[0];第一个列表题
7.得到GridControl单元格的值:
string d =gridView1.GetRowCellDisplayText(i,col); i代表行号,col代表标题
string e =gridView1.GetFocusedRowCellValue("字段名");

DevExtreme视频教程集合 打开就可以看哦  http://www.360doc.com/content/14/0314/16/10893884_360567006.shtml


添加引用

using System.Data;

创建表

//创建一个空表
DataTable dt = new DataTable();
//创建一个名为"Table_New"的空表
DataTable dt = new DataTable("Table_New");

创建列

//1.创建空列
DataColumn dc = new DataColumn();
dt.Columns.Add(dc);
//2.创建带列名和类型名的列(两种方式任选其一)
dt.Columns.Add("column0", System.Type.GetType("System.String"));
dt.Columns.Add("column0", typeof(String));
//3.通过列架构添加列
DataColumn dc = new DataColumn("column1",System.Type.GetType("System.DateTime"));
DataColumn dc = new DataColumn("column1", typeof(DateTime));
dt.Columns.Add(dc);

创建行

//1.创建空行
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
//2.创建空行
dt.Rows.Add();
//3.通过行框架创建并赋值
dt.Rows.Add("张三",DateTime.Now);//Add里面参数的数据顺序要和dt中的列的顺序对应
//4.通过复制dt2表的某一行来创建
dt.Rows.Add(dt2.Rows[i].ItemArray);

赋值和取值

//新建行的赋值
DataRow dr = dt.NewRow();
dr[0] = "张三";//通过索引赋值
dr["column1"] = DateTime.Now; //通过名称赋值
//对表已有行进行赋值
dt.Rows[0][0] = "张三"; //通过索引赋值
dt.Rows[0]["column1"] = DateTime.Now;//通过名称赋值
//取值
string name=dt.Rows[0][0].ToString();
string time=dt.Rows[0]["column1"].ToString();
 
 
 
 
 
 
 
 

c# 数据表DataTable给devexpress的gridControl提供数据源的更多相关文章

  1. WCF分布式开发步步为赢(8):使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据

    数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NE ...

  2. DevExpress.XtraGrid.GridControl中数据源的绑定问题

    在利用DevExpress.XtraGrid.GridControl作为一个可编辑的表格控件时,在利用控件之前,先将一个初始化的DataTable对象作为GridControl的数据源进行绑定.可是在 ...

  3. jsf初学数据表(DataTable)的绑定

    来看看简单的datatable例子: faces: <h:form> <h:dataTable value="#{tableData.names}" var=&q ...

  4. C# 查出数据表DataTable 清除一列中的重复项保留其他项

    http://bbs.csdn.net/topics/391085792     DataTable 老表= 新表.AsEnumerable().GroupBy(p => p["姓名& ...

  5. DevExpress 中 GridControl 的数据源DataTable 内容改变后 重新绑定

    1.datatable dt=new datatable(); 2.dt 内容改变 dt.columns.add("col1"); dt.columns.add("col ...

  6. C# DataAdapter.Update() 无法更新数据表中删除的数据行

    用DataAdapter.Update() 方法更新删除了部分DataRow 的 DataTable .但是数据库中的数据没有随着更新而变化. 原因:DataTable 删除 DataRow 时,使用 ...

  7. DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)

    /// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...

  8. excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)

    将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...

  9. DevExpress的GridControl的实时加载数据解决方案(取代分页)

    http://blog.csdn.net/educast/article/details/4769457 evExpress是一套第三方控件 其中有类似DataGridView的控件 今天把针对Dev ...

随机推荐

  1. 【php 之获得当前日期以及比较日期大小】

    首先看一个例子: $currentTime = date('Y-m-d H:i'); // 获得当前时间 $timer = $searchDated . ' ' . $results['ctrip'] ...

  2. 在别家网站上执行自己的js代码(谷歌浏览器)(谷歌扩展程序)

    @参考文章1  @参考文章2 日前针对一家投标网站进行了程序干预,且一定程度的干预成功,把方法给大家提取分享出来,感谢上述两篇博文 测试网站:百度https://www.baidu.com/ 测试步骤 ...

  3. Mapped Statements collection already contains value for*

    检查了一下,没有重复的,参数也都正确,把报错的地方注释掉继续报下一个方法错误.重启也无效 最后发现,最后一个方法的返回值类型resultType="java.util.Map"写成 ...

  4. day 18 类,对象

    类,对象: 类 具有相似功能的一类事物,人类,犬类,猫类等等. 对象: 类的具体表现 面向对象: 1.第一个优点:面向对象是一类相似功能函数的集合体 更清晰化,更规范化 class LoginHand ...

  5. webstorm 打包angular Module build failed: Error: No PostCSS Config found

    angular创建项目后,在webstorm中启动时,报出如题错误,奇怪的是我从命令行启动(ng server)是没有问题的,多方寻求无果,在网上看到过说要加一个配置文件,我不信.我觉得是我配置哪里有 ...

  6. URLEncoder.encode转译后“空格”变“加号”的问题的解决方案

    我用dst_fname=URLEncoder.encode(dst_fname);对字符串dst_fname进行编码,但是发现空格全部都变成了加号,我们提需求的傻B非得要空格的,但是不编码有很多非常特 ...

  7. redis 数据类型为string命令整理以及示例

    #设置值 SET key value [EX seconds] [PX milliseconds] [NX|XX] SET命令加上选项已经可以完全取代SETNX, SETEX, PSETEX的功能,所 ...

  8. Centos PS1

    PS1="[\[\e[35m\]\u\[\e[m\]\[\e[31m\]->\[\e[m\]\[\e[33m\]\H\[\e[m\]\[\e[31m\]->\[\e[m\]\[\ ...

  9. cocos js 3.8.1 clippingNode 不能被 ccui.ScrollView 或者ccui.Layout裁剪的bug

    clippingNode不能被ccui.ScrollView.ccui.ListView.ccui.Layout裁剪问题,只需要 设置scrollView ...的裁剪类型 scrollView.se ...

  10. 通过脚本命令cacls提升某个用户都某路径的操作权限

    摘要----项目需要对服务器上的某个路径下的目录,修改权限:给Users用户组的用户添加修改写入权限. 原理----通过批处理脚本实现,命令使用 icacls 修改ACL 来达到修改权限的目的. 操作 ...