2011-07-14 36 views
3

如果我们在c#中使用select查询填充数据集,我们如何读取列值? Like在C#中读取数据集#

string name = DataSetObj.rows [0] .columns [“name”]?

我想知道语法。

感谢

回答

5
foreach(var row in DataSetObj.Tables[0].Rows) 
{ 
    Console.WriteLine(row["column_name"]); 
} 
+0

缺少对表集合的引用 –

+0

@il_guru:很对,谢谢。 – mdm

2

如果你已经有一个数据集,它是这样的;

object value = dataSet.Tables["MyTable"].Rows[index]["MyColumn"] 

如果您正在使用DataReader:

using (SqlCommand cmd = new SqlCommand(commandText, connection, null)) 
{ 
    using (var reader = cmd.ExecuteReader()) 
    { 
     while (reader.Read()) 
     { 
      testID = (int)reader["id"]; 
     } 
    } 
} 
1

从您发布

object value = DataSetObj.Tables["Table_Name"].Rows[rowIndex]["column_name"] 

什么也sligthly不同,而不是表名和列名,你可以使用索引

1

你可以把它变成一个常用的方法。

C#

public static string GetRowValue(DataRow row, string name) { 
    if (!IsDBNull(row[name])) { 
     return row[name].ToString(); 
    } 

    return string.Empty; 
} 

VB

Public Shared Function GetRowValue(ByVal row As DataRow, ByVal name As String) As String 
    If Not IsDBNull(row(name)) Then 
     Return row(name).ToString() 
    End If 

    Return String.Empty 
End Function 
0
FileReaderObject = new StreamReader(thepath); 
       char CurrentCharacter = (char)FileReaderObject.Read(); 
       string CurrentWord = ""; 

       while (FileReaderObject.ReadLine() != null) 
       { 
        if (CurrentCharacter == '\n') 
        { 
         ((ArrayList)TChromosomes[TChromosomes.Count - 1]).Add(CurrentWord); 
         TChromosomes.Add(new ArrayList()); 
         TMask.Add(new ArrayList()); 
         CurrentWord = ""; 
        } 
        else if (CurrentCharacter == ',') 
        { 
         ((ArrayList)TChromosomes[TChromosomes.Count - 1]).Add(CurrentWord); 
         ((ArrayList)TMask[TMask.Count - 1]).Add((int)(new Random().Next(0, 2))); 
         CurrentWord = ""; 
        } 
        else 
        { 
         CurrentWord += CurrentCharacter; 
        } 
       } 

为什么读取文件时这个代码也有问题“的对象引用水湿读取.... ”。该代码逐行读取数据集并读取每个字符,直到','并为每个字符“Encoding”随机生成0或1。

您认为如何?

+0

你在哪里使用数据集对象? 他没有要求读取文件... – Benoit

0

var result = from a in ds.Tables [0] .AsEnumerable()select new [] {a [0] .ToString()};

+0

AsEnumerable()将每个记录加载到应用程序内存中,然后将记录推送到字符串数组中。 – Ajsatis