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. 运行wmic命令异常:java.io.IOException: Cannot run program "wmic": CreateProcess error=2, ϵͳÕҲ»µ½ָ¶解决记录

    之前的一篇博文获取电脑cpu序列号在一同事电脑出现上述异常 百度一下网上只有一位外国网友朋友这个问题(地址),并且还没人回复,你能靠自己了 定位了一下出错代码: Process process = R ...

  2. 交叉编译libudev

    一.交叉编译libudev下载udev-182.tar.xz 下载网址:https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/ ...

  3. springmvc中的拦截器interceptor用法

    1.配置拦截器 在springMVC.xml配置文件增加: 1 <mvc:interceptors> 2 <!-- 日志拦截器 --> 3 <mvc:intercepto ...

  4. Extjs如何添加多个Vtype

    http://devjs.eu/en/multiple-validation-multi-vtype-for-textfield-in-ext-js-4/

  5. [z] Git pull 强制覆盖本地文件

    git fetch --all git reset --hard origin/master git pull git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEA ...

  6. 为Linux虚拟机设置网络

    安装虚拟机的时候为了使用方便我们除了需要设置静态ip为了能够让虚拟机也能够上网我们需要设置虚拟机网络 当然也可以使用虚拟机和主机共享上网,这个比较简单,这里就不说了,现在我们来通过桥接的方式为虚拟机设 ...

  7. otool

    一.简介   二.实例 1)查看动态链接库 otool -L /usr/bin/vim

  8. L1-006 连续因子(20)(思路+测试点分析)

    L1-006 连续因子(20 分) 一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序 ...

  9. iOS.C

    iOS开发中C语言的应用: 1. NS_ENUM & NS_OPTIONS http://nshipster.com/ns_enum-ns_options/

  10. Python代码运行应该注意哪些问题?

    Python作为近年来热度一度高涨的编程语言,非常受广大程序员的喜爱,用过之后发现这门语言有很多特点.比如作为一门动态语言它的变量是信手拈来就可以用的,甚至比js还简单,也没有编程语言常见的大括号包含 ...