如何判断DataReader中是否存在某个字段? 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SqlDataReader dr = new SqlDataReader();dr.GetName();//获取列名 SqlDataReader dr = new SqlDataReader();dr["ColumnName"] != null 从 DataReader 中获取架构信息当 DataReader 打开时,可以使用 GetSchemaTable 方法检索有关当前结果集的架构信息。GetSchemaTable 将返回一个填充了行和列的 DataTable 对象,这些行和列包含当前结果集的架构信息。对于结果集的每一列,DataTable 都将包含一行。架构表行的每一列都映射到在结果集中返回的列的属性,其中 ColumnName 是属性的名称,而列的值为属性的值。以下代码示例为 DataReader 写出架构信息。[Visual Basic]Dim schemaTable As DataTable = myReader.GetSchemaTable()Dim myRow As DataRowDim myCol As DataColumnFor Each myRow In schemaTable.Rows For Each myCol In schemaTable.Columns Console.WriteLine(myCol.ColumnName & " = " & myRow(myCol).ToString()) Next Console.WriteLine()Next[C#]DataTable schemaTable = myReader.GetSchemaTable();foreach (DataRow myRow in schemaTable.Rows){ foreach (DataColumn myCol in schemaTable.Columns) Console.WriteLine(myCol.ColumnName + " = " + myRow[myCol]); Console.WriteLine();} dr.GetName(int index)是要索引的,我只是想知道DataReader中是否存在这一列场景:有很多查询获取到的DataReader 有一个共用的方法使DataReader给实体对象赋值 实体对象中有一个属性不一定都存在每一个查询中谢谢! while(dr.Read()){ for(int i= 0;i<dr.FieldCount;i++) if(dr.GetName(i) == "") 存在; else 不存在;} try{ string str=reader["字段"].ToString() 成功}catch{ 失败}通过异常来判断,如果没有该字段取值时肯定出错。 to malongning(马龙) 使用try,开始的时候我也想过,但是try会不会占用太多的资源呢?尤其是字段比较多的时候,每一个字段都要用一个try 积分兑换管理系统 怎么设计? 问个关于同一页面内多次引用同一个控件的问题 asp.net高手进 ASP.NET insert插入语句问题 在windows server 2008 安装sql server 2000 ,可以吗?怎么做? 问两个关于asp.net访问excel的问题 如何在客户端清空comobx的内容? 登录问题 vs2008实体框架如何引用存储过程?? 文件夹里的文件访问验证问题 用SQL2000建立的数据库文件在VS2005中的服务器资源管理器中无法连接? 如何在表格里只显示部分文字!急!!!!!
dr.GetName();//获取列名
dr["ColumnName"] != null
当 DataReader 打开时,可以使用 GetSchemaTable 方法检索有关当前结果集的架构信息。GetSchemaTable 将返回一个填充了行和列的 DataTable 对象,这些行和列包含当前结果集的架构信息。对于结果集的每一列,DataTable 都将包含一行。架构表行的每一列都映射到在结果集中返回的列的属性,其中 ColumnName 是属性的名称,而列的值为属性的值。以下代码示例为 DataReader 写出架构信息。
[Visual Basic]
Dim schemaTable As DataTable = myReader.GetSchemaTable()Dim myRow As DataRow
Dim myCol As DataColumnFor Each myRow In schemaTable.Rows
For Each myCol In schemaTable.Columns
Console.WriteLine(myCol.ColumnName & " = " & myRow(myCol).ToString())
Next
Console.WriteLine()
Next
[C#]
DataTable schemaTable = myReader.GetSchemaTable();foreach (DataRow myRow in schemaTable.Rows)
{
foreach (DataColumn myCol in schemaTable.Columns)
Console.WriteLine(myCol.ColumnName + " = " + myRow[myCol]);
Console.WriteLine();
}
我只是想知道DataReader中是否存在这一列场景:有很多查询获取到的DataReader
有一个共用的方法使DataReader给实体对象赋值
实体对象中有一个属性不一定都存在每一个查询中谢谢!
{
for(int i= 0;i<dr.FieldCount;i++)
if(dr.GetName(i) == "")
存在;
else
不存在;
}
{
string str=reader["字段"].ToString()
成功
}
catch
{
失败
}
通过异常来判断,如果没有该字段取值时肯定出错。
使用try,开始的时候我也想过,但是try会不会占用太多的资源呢?尤其是字段比较多的时候,每一个字段都要用一个try