You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将MS-SQL表直接导入System.Data.DataTable是否有简便实现方法?

实现方案

原生.NET 没有提供你示例中DataTable dt_Products = new DataTable(connection, "Products")的构造函数重载,但你可以通过SqlDataAdapter实现完全一致的需求,无需手动编写SqlCommand、遍历SqlDataReader,表的列名、数据类型、自增属性、主键等元数据都会自动识别适配。

基础实现代码

using (SqlConnection connection = new SqlConnection("你的数据库连接字符串"))
{
    // 只需传入查询语句和连接对象,无需手动管理连接开闭、DataReader遍历
    SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM dbo.Products", connection);
    DataTable dt_Products = new DataTable();
    // Fill方法会自动打开/关闭连接,同时填充表结构和全量数据
    adapter.Fill(dt_Products);
}

封装为你想要的简化调用形式

你可以自行封装一个工具方法,实现和你设想的几乎一致的调用逻辑:

public static class DataTableHelper
{
    public static DataTable LoadFromSqlTable(string connectionString, string tableName)
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter($"SELECT * FROM [{tableName}]", conn);
            DataTable result = new DataTable(tableName);
            adapter.Fill(result);
            return result;
        }
    }
}

调用时直接写:

DataTable dt_Products = DataTableHelper.LoadFromSqlTable("你的连接字符串", "Products");

额外说明

如果需要仅加载表结构不加载数据,可以把adapter.Fill(dt)替换为adapter.FillSchema(dt, SchemaType.Source),即可获取包含全部列属性、主键、自增标识的空表。

内容的提问来源于stack exchange,提问作者Dominique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:24:03