我有一个从SQL查询到本地数据库的DataTable,但我不知道如何从中提取数据.

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提取到一个有意义的表格中使用?

推荐答案

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

每个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();
 }

Sql相关问答推荐

Postgresql在加入时显示重复的行

当我们加入两个表时,我们可以省略GROUP BY中的列名吗?

在多个联合中使用相同的SELECT SQL查询

Access 365将文本转换回BigInt

SQL基于多个值 Select 单行

SQL将 Select 查询作为新列添加到另一个 Select 查询

在SQL中使用类别值将行转置为列

检索上一个星期四和上一个星期三

对列进行排序后,基于两列删除重复行

如何设计一个调用嵌套函数并仅在所有被调用的嵌套函数都提交时才提交的事务,例如,如果一个子函数失败则中止?

根据时间、状态和相关行在PostgreSQL中的存在来删除行

组合2个分区表的postgres视图的执行计划正在访问所有分区

两个月之间的WHERE CASE WHEN-ORA-00905:缺少关键字

将伪数据插入Postgres表

将SQL Server查询改进为;线程安全;

试图找到两个身份列表的交集(列表的长度不同),但获取列 id 不明确?

识别SQL Server中的重复数字

函数调用作为插入值语句中的参数

Select 给定类别列表(或更多类别)中的所有事物

如何根据另一列对行值进行分组?