c#熟悉DataTable的朋友来看一个问题,如何直接设置某一列的值全部为string.Empty?

就是能不能不做for循环或foreach循环,直接设置的方法?

DataTable dt=new DataTable();
dt.Columns[1]=String.Empty;

错误 1 无法对属性或索引器“System.Data.DataColumnCollection.this[int]”赋值 -- 它是只读的 C:\Users\gostop\Documents\Visual Studio 2008\Projects\calc\calc\Form1.cs 58 13 calc

所以是不能直接赋值的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-23
DataColume.DefautValue.

如果该列已经有值,要全部写成string.Empy.
遍历是少不了的,一是自己遍历,二是用linq,linq也是遍历,不过是.net内在处理的
for和foreach有时候确实不美观.
你可以自己封装一个方法,看起来漂亮点.

linq可以这么写试试,col2是列名
dt.AsEnumerable().ToList().ForEach(p => p["col2"] = string.Empty);
第2个回答  2011-08-23
你把某列删除了。
再添加一列默认值为string.Empty的列,列名与被删除的列同名?
我没试过。只是这么想的。。
第3个回答  2011-08-23
自己重写DataTable的实现!但是同样底层会进行遍历循环,只是在调用的时候会建议些!
第4个回答  2011-08-23
就算你代码可以不这样写,他底层实现一样要遍历的

c#熟悉DataTable的朋友来看一个问题,如何直接设置某一列的值全部为str...
DataTable dt=new DataTable();dt.Columns[1]=String.Empty;错误1无法对属性或索引器“System.Data.DataColumnCollection.this[int]”赋值 -- 它是只读的C:\\Users\\gostop\\Documents\\Visual Studio 2008\\Projects\\calc\\calc\\Form1.cs5813calc 所以是不能直接赋值的。

用c#连接数据库,如何在DataGird中显示某一行的值
string CmdString = string.Empty;using (SqlConnection con = new SqlConnection(ConString)){ CmdString = "SELECT * FROM 部门表";\/\/如果只显示某几列数据,可以用其他sql语句控制,如select 部门经理 from 部门表 SqlCommand cmd = new SqlCommand(CmdString, con);SqlDataAdapter sda = new SqlD...

C# DataTable 中如何设置一个列为某一行数据最小值
DataRow drT = dtT.NewRow(); \/\/列序号可改为列名 float fMin = new float[] { (float)drT[2], (float)drT[3], (float)drT[4] }.Min();

c#熟悉DataTable的Select的朋友来看一个问题,关于单引号的
dt.Select("pid='11873' and from='1'") 我用这个试了 没有问题啊! 语法没有问题,报错信息为:不能找到列 说明是你的列名写错了 id ,vc_name没有写错吧,确定和数据表的列名相同。

c#如何修改DataTable里面的特定列的数据类型
DataTable newDt = new DataTable();List<string> listColums = new List<string>();\/\/复制表结够 newDt = dt.Clone();(此处空一行)\/\/新表中的列数据类型为Decmail的改为string foreach (DataColumn col in newDt.Columns){ listColums.Add(col.ColumnName);if (col.DataType.FullName ...

C#从dataTable 分组统计数据问题
private DataTable GetGroupedBy(DataTable dt, string columnNamesInDt, string groupByColumnNames, string typeOfCalculation){ \/\/Return its own if the column names are empty if (columnNamesInDt == string.Empty || groupByColumnNames == string.Empty){ return dt;} \/\/Once the columns ...

C# 判断当前值是否存在datatable的指定列中。
你上面有两个for循环,外面那个是必要的,里面那个可以去掉,改成KK.contains(ExceDT.Rows[i][0].ToString())来判断。还有你第二个for循环的写法也是错的,有一个不同你就执行了么?应该是所有都不同才会执行。

c#怎么通过表头字段获得整个datatable的一列的数据
foreach(datarows item in datatable){ dataset_stu.tables["学生表"].rows[0].["学生"];\/\/这样循环读取一行的每一个列的值 } 上面循环去读取可以把一列的每个值读取出来,我就是这样实现的。

c#中的DataTable如何修改数据类型
很简单。修改下值就可以。我想LZ要学会自己思考。我想这个你都没有思考一看不会就发上来了。我给你写下如何生成DataTable的步骤。然后自己思考,修改下。最简单的方式 DataTable dt=new DataTable("Table1"); \/\/创建数据表 DataColumn dcID=new DataColumn("ID",typeof(int)); \/\/创建ID列 DataCo...

怎么修改datatable中某一列的值?
dc.DataType = Type.GetType("System.String")C#:DataTable dt = new DataTable();DataColumn dc = dt.Columns(i);\/\/i就是第几列或者用列名也可以 dc.DataType = Type.GetType("System.String");你可以试下,double转string应该是可以的,不知道你为什么要这么做 ...

相似回答