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. sqlserver2017 +SSMS+ VS2017+SSDT 安装要点及相关组件下载地址

    1.sqlserver2017安装PolyBase需要安装jdk7 ,注意必须是7  jdk10是不行的. 下载地址:http://dl-t1.wmzhe.com/30/30117/jdk_7u_1. ...

  2. lombok ------让代码更简洁方便

    估计在平常写代码中,都会创建entity类的实体来,都是那种创建变量,生成set get 方法,方便外部调用,你以为你很流利的操作快捷键就很方便的了? 其实不然,有一个lombok 工具可以帮我们自动 ...

  3. Linux系统下重启Tomcat

    在Linux系统下,重启Tomcat使用命令操作的! 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查看 ...

  4. JDBC的学习

    JDBC —— 用Java访问数据库 一.需要用到第三方类:mysql-connector-java-5.0.8-bin.jar,并做好导包处理: 二.初始化驱动: 三.建立与数据库的链接: 四.创建 ...

  5. 2018.3.15 css课外小知识

    1, 如果手动写动画, 最小的时间间隔是多久 为什么 多数显示器默认频率是60Hz  1s刷新60次  所以理论最小是1/60*1000ms=16.7ms 2. display:inline-bloc ...

  6. Struts2框架的数据封装一之属性封装(属性封装的第一种方式:对参数进行封装)

    request带着参数来,aciton对其进行处理.在学习action之前,使用的是servlet对request进行处理.request请求时会带有参数,所以我们要对这些参数进行封装. 1. 为什么 ...

  7. opencv 学习总结 方法总结

    师者传道受业解惑也,图片识别是门学科,需要师者传教,才会较快解开谜团,解开困惑,没人引导,要学会图片识别,有点难度,因为其中的做法超出自己的想象范围. 大家都知道,在超出想象范围,或者从未想到的方式, ...

  8. PAT 1031 查验身份证(15)(C++&Python)

    1031 查验身份证(15)(15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8, ...

  9. iOS.ARM-Assembly

    ARM Assembly for iOS with Xcode 0. Introduction 0.1 arm asm vs. arm64(ARMv8) asm AArch64: 0.2 __arm6 ...

  10. shell脚本${}、##和%%使用范例

    file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值: ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.fi ...