关于datatable获取行数据第0行第0列数据C#怎么做

12335人阅读
//定义一个TableDataTable dt=new DataTable(&yeji&);DataRDataC//添加第0列 dc=new DataColumn(&店名&,System.Type.GetType(&System.String&));dt.Columns.Add(dc);//第1列dc=new DataColumn(&店长名&,System.Type.GetType(&System.String&));dt.Columns.Add(dc);//添加第2列dc=new DataColumn(&总业绩&,System.Type.GetType(&System.Int32&));dt.Columns.Add(dc);//添加第3列dc=new DataColumn(&租合同数&,System.Type.GetType(&System.Int32&));dt.Columns.Add(dc);//添加第4列dc=new DataColumn(&售合同数&,System.Type.GetType(&System.Int32&));dt.Columns.Add(dc);//设置关键字段DataColumn[] dckey=new DataColumn[]{dt.Columns[&部门&]};dt.PrimaryKey= 如何将数据添加到自定义的DataTable中?dt.Rows[行数][&店名&] = &值&;
DataTable dt = new DataTable();dt.Columns.Add(&FID&, typeof(string));DataRow dr = dt.NewRow();dr[&FID&] = &123&;dt.Rows.Add(dr);&
DataRow r = dt.NewRow();r[&列名&] = &xxx&;dt.Rows.Add(r);
//定义一个Table&&&&DataTable&dt=new&DataTable(&yeji&);&&&&DataRow&&&&&DataColumn&&&&&//添加第0列&&&&&dc=new&DataColumn(&店名&,System.Type.GetType(&System.String&));&&&&dt.Columns.Add(dc);&&&&//第1列&&&&dc=new&DataColumn(&店长名&,System.Type.GetType(&System.String&));&&&&dt.Columns.Add(dc);&&&&//添加第2列&&&&dc=new&DataColumn(&总业绩&,System.Type.GetType(&System.Int32&));&&&&dt.Columns.Add(dc);&&&&//添加第3列&&&&dc=new&DataColumn(&租合同数&,System.Type.GetType(&System.Int32&));&&&&dt.Columns.Add(dc);&&&&//添加第4列&&&&dc=new&DataColumn(&售合同数&,System.Type.GetType(&System.Int32&));&&&&dt.Columns.Add(dc);&&&&//设置关键字段&&&&DataColumn[]&dckey=new&DataColumn[]{dt.Columns[&部门&]};&&&&dt.PrimaryKey=&如何将数据添加到自定义的DataTable中?
回复:如何将数据添加到自定义的DataTable中?顶
回复:如何将数据添加到自定义的DataTable中?不用那么麻烦的&&&&&&&&&&&&DataTable&dt&=&new&DataTable(&yeji&);&&&&&&&&&&&&dt.Columns.Add(&部门&,&typeof(System.String));&&&&&&&&&&&&dt.Columns.Add(&店名&,&typeof(System.String));&&&&&&&&&&&&dt.Columns.Add(&店长名&,&typeof(System.String));&&&&&&&&&&&&dt.Columns.Add(&总业绩&,&typeof(System.Int32));&&&&&&&&&&&&dt.Columns.Add(&租合同数&,&typeof(System.Int32));&&&&&&&&&&&&dt.Columns.Add(&售合同数&,&typeof(System.Int32));&&&&&&&&&&&&DataColumn[]&dckey&=&new&DataColumn[]&{&dt.Columns[&部门&]&};&&&&&&&&&&&&dt.PrimaryKey&=&&&&&&&&&&&&&DataRow&dr&=&dt.NewRow();&&&&&&&&&&&&dr[0]&=&&餐饮部&;&&&&&&&&&&&&dr[1]&=&&店1&;&&&&&&&&&&&&dr[2]&=&&店长&;&&&&&&&&&&&&dr[3]&=&1000;&&&&&&&&&&&&dr[4]&=&2000;&&&&&&&&&&&&dr[5]&=&3000;&&&&&&&&&&&&dt.Rows.Add(dr);上面是添加了一行数据,如果多条,可以循环加入
&&&DataTable&dt&=&new&DataTable();&&&&&&&&dt.Columns.Add(&Name&);&&&&&&&&dt.Columns.Add(&Value&);&&&&&&&&DataRow&&&&&&&&&dr&=&dt.NewRow();&&&&&&&&dr[&Name&]&=&&Ntext2&;&&&&&&&&dr[&Value&]&=&&TesrNtext2&;&&&&&&&&dt.Rows.Add(dr);
private&void&MakeDataTableAndDisplay()...{&&&&//&Create&new&DataTable.&&&&DataTable&table&=&new&DataTable(&table&);&&&&//&Declare&DataColumn&and&DataRow&variables.&&&&DataColumn&&&&&DataRow&&&&&&//&Create&new&DataColumn,&set&DataType,&&&&&//&ColumnName&and&add&to&DataTable.&&&&&&&&column&=&new&DataColumn();&&&&column.DataType&=&System.Type.GetType(&System.Int32&);&&&&column.ColumnName&=&&id&;&&&&table.Columns.Add(column);&&&&&//&Create&second&column.&&&&column&=&new&DataColumn();&&&&column.DataType&=&Type.GetType(&System.String&);&&&&column.ColumnName&=&&item&;&&&&table.Columns.Add(column);&&&&&//&Create&new&DataRow&objects&and&add&to&DataTable.&&&&&&&&for(int&i&=&0;&i&&&10;&i++)&&&&...{&&&&&&&&row&=&table.NewRow();&&&&&&&&row[&id&]&=&i;&&&&&&&&row[&item&]&=&&item&&&+&i;&&&&&&&&table.Rows.Add(row);&&&&}&&&&//&Set&to&DataGrid.DataSource&property&to&the&table.&&&&dataGrid1.DataSource&=&}
将&DataTable&保存到&DataSet&中所需的&C#&代码:void&DataTableToDataSet(DataTable&dt)...{&&&//&Duplicate&the&table&and&add&it&to&a&DataSet&&&DataSet&dsTmp&=&new&DataSet();&&&DataTable&dtTmp&=&dt.Copy();&&&dsTmp.Tables.Add(dtTmp);&&}将DataView保存到DataSet中:void&DataViewToDataSet(DataView&dv)...{//&Clone&the&structure&of&the&table&behind&the&viewDataTable&dtTemp&=&dv.Table.Clone();&&&dtTemp.TableName&=&&Row&;&&&&&//&Populate&the&table&with&rows&in&the&view&&&foreach(DataRowView&drv&in&dv)&&&&&&dtTemp.ImportRow(drv.Row);DataSet&dsTemp&=&new&DataSet(dv.Table.TableName);&&&&&&//&Add&the&new&table&to&a&DataSet&&&dsTemp.Tables.Add(dtTemp);}
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:386451次
积分:3115
积分:3115
排名:第11629名
原创:24篇
转载:157篇
评论:75条
(1)(3)(16)(2)(3)(6)(1)(1)(8)(1)(5)(84)(17)(1)(8)(4)(20)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'关于DataTable的一些常用方法收集
关于DataTable的一些常用方法收集
编辑:www.fx114.net
本篇文章主要介绍了"关于DataTable的一些常用方法收集",主要涉及到关于DataTable的一些常用方法收集方面的内容,对于关于DataTable的一些常用方法收集感兴趣的同学可以参考一下。
& 1.复制两种方法
&&&&&&&& datatable dt1;
&&&&&&&& dt1 = dt.Copy();
&&&&&&&& datatable dt1;
&&&&&&&& dt1 = dt.Clone();//复制数据结构
&&&&&&&& foreach(DataRow dr in dt.Rows)//再复制行数据
&&&&&&&& {
&&&&&&&&&&&&&&&&&& dt1.ImportRow(dr);//导入行
&&&&&&&& }
2.与dataview的使用
&&&&&&&& ArrayList al = new ArrayList();
&&&&&&&& DataSet ds = SqlHelper.ExecuteDataset(conn,CommandType.Text,&select * from&mon_music_File&);
&&&&&&&& DataTable dt = ds.Tables[0];
&&&&&&&& DataView dv = new DataView(dt,null,&Common_Music_FileName ASC&,DataViewRowState.CurrentRows);//建立视图和筛选
&&&&&&&& string strValue = &&;
&&&&&&&& foreach(DataRowView drv in dv)
&&&&&&&& {
&&&&&&&&&&&&&&&&&& if(strValue==drv.Row[&Common_music_FileName&].ToString())
&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&& strValue=drv.Row[&Common_music_FileName&].ToString();
&&&&&&&&&&&&&&&&&&&&&&&&&&& al.Add(strValue);
&&&&&&&&&&&&&&&&&& }
&&&&&&&& }
&&&&&&&& foreach(string str in al)
&&&&&&&& {
&&&&&&&&&&&&&&&&&& Response.Write(str+&&br&&);
&&&&&&&& }
&&&&&&&& DataRow[] drs = dt.Select(&Common_music_fileid&2&);//可以用模糊查询比如:like '%1%'
4.修改数据
DataTable dt = new DataTable();
foreach (DataRow row in dt.Rows)
&&&&&&&& row.BeginEdit();
&&&&&&&& row[&NAME&] =&修改后的名字&;
&&&&&&&& row.EndEdit();
for (int i=0;i&dt.Rows.i++)
&&&&&&&& dt.Rows[i].BeginEdit()
&&&&&&&& row[&NAME&] =&修改后的名字&;
&&&&&&&& dt.Rows[i].EndEdit();
5.建立数据表格(DataTable)
&&&&&&&& //建立一个新表
&&&&&&&&&&& DataTable dt = new DataTable();
&&&&&&&&&&& dt.Columns.Add(&整数值&,typeof(int)); //增加一列
&&&&&&&&&&& dt.Columns.Add(&字符串值&,typeof(string));
&&&&&&&&&&& dt.Columns.Add(&日期时间值&,typeof(DateTime));
&&&&&&&&&&& dt.Columns.Add(&布尔值&,typeof(bool));
&&&&&&&&&&& for(int i=0;i&=9;i++)
&&&&&&&&&&& {
&&&&&&&&&&&&& &&&& DataRow&dr = dt.NewRow();//添加新行
&&&&&& &&&&&&&&&dr[0]=i;&&&&&&&&&&&&& //0指的是第0列
&&&&&&&&&&&&&&& dr[1]=&项目&+i.ToString();
&&&&&&&&&&&&&&& dr[2]=DateTime.N
&&&&&&&&&&&&&&& dr[3]=(i%2!=0)?true:
&&&&&&&&&&&&&&& dt.Rows.Add(dr);//把每行数据写到表格中
&&&&&&&&&&& }
&&&&&&&&&&& this.DataGrid1.DataSource = new DataView(dt);//连接视图
&&&&&&&&&&& this.DataGrid1.DataBind();
6.建立数据表格二(DataTable)
&&&&&&&& &&& DataTable dt = new DataTable();
&&&&&&&&&&& DataColumn customerId = new DataColumn(&customerId&, typeof(int));
&&&&&&&&&&& customerId.AllowDBNull =&&& //是否允许DBNULL
&&&& &&&&&&&customerId.AutoIncrement =&&&&&&&& //时候自增长
&&&&&&&&&&& customerId.AutoIncrementSeed = 500; //设置初始种子
&&&&&&&&&&& customerId.AutoIncrementStep = 5;&&&&&& //自增长递级数
&&&&&&&&&&& customerId.Caption = &顾客编号&;&&&&&&&& //获取或设置列的标题
&&&&&&&&&&& DataColumn customerName = new DataColumn(&customerName&, typeof(string));
&&&&&&&&&&& customerName.AllowDBNull =
&&&&&&&&&&& customerName.AutoIncrement =
&&&&&&&&&&& customerName.Unique =&&&&&&&&&&&&&&&& //是否唯一
&&&&&&&&&&& dt.Columns.Add(customerId);
&&&&&&&&&&& dt.Columns.Add(customerName);
7.判断某个字段的值是否为空
if (DT.Rows[0].IsNull(ColName))
8.两列合并的方法
&&&&&&&& &&& System.Data.DataTable dt = new DataTable();
&&&&&&&&&&& dt.Columns.Add(&a&, typeof(string));
&&&&&&&&&&& dt.Columns.Add(&b&, typeof(string));
&&& &&&&&&&&DataRow dr = dt.NewRow();
&&&&&&&&&&& dr[0] = &1&;
&&&&&&&&&&& dr[1] = &2&;
&&&&&&&&&&& dt.Rows.Add(dr);
&&&&&&&&&&& dtview.DataSource =
&&&&&&&&&&& dt.Columns.Add(&c&, typeof(string));
&&&&&&&&&&& dt.Columns[&c&].Expression = &a+b&;
&&&&&&&& &&&dtview.DataSource =
9.获取当前行所在的索引
&&&&&&&& &&& DataRow[] drs = dt.Select(&companyno='& + companyno + &'&);
&&&&&&&&&&& foreach (DataRow dr in drs)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& id = dt.Rows.IndexOf(dr) + 1;
&&&&&&&&&&& }
10.多表建立父子关系
&&&&&&& DataSet ds = new DataSet();
&&&&&&& sda.Fill(ds,&table&);
&&&&&&& ds.Tables[0].TableName = &customers&;
&&&&&&& ds.Tables[1].TableName = &orders&;
&&&&&&& ds.Relations.Add(&customersorders&, ds.Tables[&customers&].Columns[&customerid&], ds.Tables[&Orders&].Columns[&CustomerID&]);
&&&&&&& foreach (DataRow pdr in ds.Tables[&customers&].Rows)
&&&&&&&&&&& Response.Write(&prarent Info:& + pdr[&customerid&].ToString() + &---& + pdr[&companyname&].ToString() + &&br&&);
&&&&&&&&&&& Response.Write(&child Info:&);
&&&&&&&&&&& foreach (DataRow cdr in pdr.GetChildRows(&customersorders&))
&&&&&&&&&&& {
&&&&&&&&&&&&&&& Response.Write(&||& + cdr[&customerid&].ToString() + &---& + cdr[&orderdate&].ToString());
&&&&&&&&&&& }
&&&&&&&&&&& Response.Write(&&br/&&br/&&);
要点:ds.Relations建立关系&& pdr.GetChildRows获取子节点所对应的信息
11.将DataSet的改动更新回SQL Server数据库(包括修改、新增)同时更新多条记录
&&&&&&&& SqlConnection conn = new SqlConnection(connstr);
&&&&&&& SqlDataAdapter sda = new SqlDataAdapter(&SELECT * FROM Customers&, conn);
&&& &&&&//DataTable dt = new DataTable();
&&&&&&& SqlCommandBuilder com = new SqlCommandBuilder(sda);
&&&&&&& DataSet ds = new DataSet();
&&&&&&& sda.Fill(ds,&customers&);
&&&&&&& DataTable dt = ds.Tables[0];
&&&&&&& dt.Rows[0][&companyname&] = &中国&;
&&&&&&& dt.Rows[1][&companyname&] = &日本&;
&&&&&&& DataRow dr = dt.NewRow();
&&&&&&& dr[&CustomerID&] = &New&;
&&&&&&& dr[&CompanyName&] = &New CompanyName&;
&&&&&&& dr[&Country&] = &New Country&;
&&&&&&& dt.Rows.Add(dr);
&&&&&&& sda.Update(ds, &customers&);
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:下次自动登录
现在的位置:
& 综合 & 正文
C#中同一DataTable中合并相同条件的行数据
using Susing System.Collections.Gusing System.Tusing System.Text.RegularEusing System.Cusing System.D
namespace ConsoleApplication1{
class Program
public static DataTable tabTemp = new DataTable();
public static DataRow drTemp = null;
public static DataTable dt = new DataTable();
static void Main(string[] args)
dt.Columns.Add("a", typeof(String));
dt.Columns.Add("b", typeof(String));
dt.Columns.Add("c", typeof(String));
dt.Columns.Add("d", typeof(String));
DataRow dr = null;
dr = dt.NewRow();
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dr[<span style="COLOR: #] = "<span style="COLOR: #";
dt.Rows.Add(dr);
Console.WriteLine(dt.Columns[<span style="COLOR: #].ColumnName + " " + dt.Columns[<span style="COLOR: #].ColumnName + " " + dt.Columns[<span style="COLOR: #].ColumnName + " " + dt.Columns[<span style="COLOR: #].ColumnName + " ");
for (int l = <span style="COLOR: #; l & dt.Rows.C l++)
Console.WriteLine(dt.Rows[l][<span style="COLOR: #].ToString() + " " + dt.Rows[l][<span style="COLOR: #].ToString() + " " + dt.Rows[l][<span style="COLOR: #].ToString() + " " + dt.Rows[l][<span style="COLOR: #].ToString() + " ");
for (int j = <span style="COLOR: #; j & dt.Columns.C j++)
tabTemp.Columns.Add(dt.Columns[j].ColumnName, dt.Columns[j].DataType);
FindComValue();
Console.WriteLine(tabTemp.Columns[<span style="COLOR: #].ColumnName + " " + tabTemp.Columns[<span style="COLOR: #].ColumnName + " " + tabTemp.Columns[<span style="COLOR: #].ColumnName + " " + tabTemp.Columns[<span style="COLOR: #].ColumnName + " ");
for (int k = <span style="COLOR: #; k & tabTemp.Rows.C k++)
Console.WriteLine(tabTemp.Rows[k][<span style="COLOR: #].ToString() + " " + tabTemp.Rows[k][<span style="COLOR: #].ToString() + " " + tabTemp.Rows[k][<span style="COLOR: #].ToString() + " " + tabTemp.Rows[k][<span style="COLOR: #].ToString() + " ");
Console.Read();
static void FindComValue()
if (dt.Rows.Count & <span style="COLOR: #)
string row1 = dt.Rows[<span style="COLOR: #][<span style="COLOR: #].ToString();//取表的第一行第一列
DataRow[] drr = dt.Select("a=" + row1);
drTemp = tabTemp.NewRow();//临时新的行
foreach (DataRow row in drr)
for (int i = <span style="COLOR: #; i & dt.Columns.C i++)
if (i != <span style="COLOR: #)
if (drTemp[i].ToString().Trim() == "")
drTemp[i] = "<span style="COLOR: #";
drTemp[i] = Convert.ToString(Convert.ToDouble(drTemp[i].ToString()) + Convert.ToDouble(row[i].ToString()));//合并每一列的数据
drTemp[i] = row[i].ToString();//添加第一列,不需要相加
dt.Rows.Remove(row);//清除此类的行
tabTemp.Rows.Add(drTemp);//添加临时新的行数据
FindComValue();
&&&&推荐文章:
【上篇】【下篇】===前提:我们已经有一个DataTable的数据表 现在需要的只是其中的一行数据===
比如说下面这段代码在一个方法里 返回的就是一个DataTable!
&&&&&&&&&&&&sqlCon&=&new&SqlConnection(strCon);
&&&&&&&&&&&&sqlCom&=&new&SqlCommand();
&&&&&&&&&&&&sqlCom.Connection&=&sqlC
&&&&&&&&&&&&mandText&=&"select_v";
&&&&&&&&&&&&mandType&=&CommandType.StoredP
&&&&&&&&&&&&sqlCon.Open();
&&&&&&&&&&&&sdr&=&sqlCom.ExecuteReader();
&&&&&&&&&&&&dt&=&new&DataTable();
&&&&&&&&&&&&dt.Load(sdr);
假如返回的DataTable就是 dt ,
方法一:直接复制一个DataTable,然后清空数据(Column结构还保留),最后再用ImportRow()方法从dt中加入需要的R
&&&&&&&&&&&&DataTable dt2 = new DataTable();
&&&&&&&&&&& dt2 = dt.Copy();
&&&&&&&&&&& dt2.Rows.Clear();
&&&&&&&&&&& dt2.ImportRow(dt.Rows[0]);//这是加入的是第一行
首先新的DataTable必须加入对应的列名(Column)
一个空的没有结构的DataTable是不允许直接向里面加入一行的!
&&&&&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&dt.Columns.C&i++)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&dt2.Columns.Add(dt.Columns[i].ColumnName);//有重载的方法,可以加入列数据的类型
&&&&&&&&&&&&}
然后就可以直接加入Row了!
//<span style="color: #
&&&&&&&&&&&&DataRow&drq&=&dt2.NewRow();
&&&&&&&&&&&&drq.ItemArray&=&dt.Rows[<span style="color: #].ItemA//这是加入的是第一行
&&&&&&&&&&&&dt2.Rows.Add(drq);
//<span style="color: #
&&&&&&&&&&&&dt2.ImportRow(dt.Rows[<span style="color: #]);//这是加入的是第一行
最后可以将新的DataTable放入DataSet中了:
ds = new DataSet();
ds.Tables.Add(dt2);
过滤DataTable的Rows的重复行 简单方法
DataView&view&=&table.DefaultV
DataTable&tagetTable=&view.ToTable(true,&"column1",&"column2",&...);
阅读(...) 评论()

我要回帖

更多关于 datatable修改列数据 的文章

 

随机推荐