首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从DataTable中提取数据?

如何从DataTable中提取数据?
EN

Stack Overflow用户
提问于 2009-08-28 10:19:39
回答 5查看 407.6K关注 0票数 88

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

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
create table programs
(
    progid int primary key identity(1,1),
    name nvarchar(255),
    description nvarchar(500),
    iconFile nvarchar(255),
    installScript nvarchar(255)
)

如何将DataTable中的数据提取到有意义的表单中?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-28 10:22:24

DataTable有一个DataRow元素的集合.Rows

每个DataRow对应于数据库中的一行,并包含一个列集合。

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

代码语言:javascript
复制
 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();
 }
票数 171
EN

Stack Overflow用户

发布于 2009-08-28 10:21:57

您可以将datatable设置为许多元素的数据源。

例如

gridView

中继器

数据列表

等等等等

如果需要从每一行提取数据,则可以使用

代码语言:javascript
复制
table.rows[rowindex][columnindex]

如果您知道列名

代码语言:javascript
复制
table.rows[rowindex][columnname]

如果需要迭代表,则可以使用for循环或foreach循环,如下所示

代码语言:javascript
复制
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();
}
票数 26
EN

Stack Overflow用户

发布于 2014-03-27 19:10:44

请考虑使用如下代码:

代码语言:javascript
复制
SqlDataReader reader = command.ExecuteReader();
int numRows = 0;
DataTable dt = new DataTable();

dt.Load(reader);
numRows = dt.Rows.Count;

string attended_type = "";

for (int index = 0; index < numRows; index++)
{
    attended_type = dt.Rows[indice2]["columnname"].ToString();
}

reader.Close();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1346132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档