当前位置:  开发笔记 > 编程语言 > 正文

如何从DataTable中提取数据?

如何解决《如何从DataTable中提取数据?》经验,为你挑选了2个好方法。

我有一个DataTable从SQL查询填充到本地数据库,但我不知道如何从中提取数据.主要方法(在​​测试程序中):

static void Main(string[] args)
{
    const string connectionString = "server=localhost\\SQLExpress;database=master;integrated Security=SSPI;";
    DataTable table = new DataTable("allPrograms");

    using (var conn = new SqlConnection(connectionString))
    {
        Console.WriteLine("connection created successfuly");

        string command = "SELECT * FROM Programs";

        using (var cmd = new SqlCommand(command, conn))
        {
            Console.WriteLine("command created successfuly");

            SqlDataAdapter adapt = new SqlDataAdapter(cmd);

            conn.Open(); 
            Console.WriteLine("connection opened successfuly");
            adapt.Fill(table);
            conn.Close();
            Console.WriteLine("connection closed successfuly");
        }
    }

    Console.Read();
}

我用来在我的数据库中创建表的命令:

create table programs
(
    progid int primary key identity(1,1),
    name nvarchar(255),
    description nvarchar(500),
    iconFile nvarchar(255),
    installScript nvarchar(255)
)

如何从DataTable一个有意义的表单中提取数据?



1> marc_s..:

DataTable有一组.RowsDataRow元素.

每个DataRow对应于数据库中的一行,并包含一组列.

要访问单个值,请执行以下操作:

 foreach(DataRow row in YourDataTable.Rows)
 { 
     string name = row["name"].ToString();
     string description = row["description"].ToString();
     string icoFileName = row["iconFile"].ToString();
     string installScript = row["installScript"].ToString();
 }


我知道这是一个老答案,但你不需要在foreach循环中进行转换以允许索引吗?在我将代码更改为如下所示之前,我无法执行此类操作:foreach(YourDataTable.Rows.Cast ()中的DataRow行)...

2> rahul..:

您可以将数据表设置为许多元素的数据源.

例如

网格视图

中继器

数据列表

等等

如果您需要从每行提取数据,那么您可以使用

table.rows[rowindex][columnindex]

要么

如果您知道列名称

table.rows[rowindex][columnname]

如果你需要迭代表,那么你可以使用for循环或foreach循环

for ( int i = 0; i < table.rows.length; i ++ )
{
    string name = table.rows[i]["columnname"].ToString();
}

foreach ( DataRow dr in table.Rows )
{
    string name = dr["columnname"].ToString();
}

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有