【发布时间】:2015-06-29 22:39:12
【问题描述】:
我正在从 SQL Server 数据库中加载数据,如下所示:
SqlCommand cmd = new SqlCommand("select * from x", conn);
cmd.CommandType = CommandType.Text;
DataTable dt = new DataTable();
SqlDataReader rd = cmd.ExecuteReader();
dt.Load(rd, LoadOption.PreserveChanges);
问题:
Load() 函数使用ColumnName 和DataType 初始化表列,但它也更深入地查看数据库,并添加了一些约束,如AllowDBNull、AutoIncrement、MaxLength 等。
但是,这会导致我的应用程序出现问题,因为我想在内部进一步处理数据。
那么,是否可以只设置最基本的属性(直接来自select 语句)而不设置AllowDBNull、MaxLength 等来执行Load()?还是我需要在 Load() 之后清除这些值?或者有没有其他方法可以打电话给Load() ?
【问题讨论】:
-
将数据加载到
List<T>而不是DataTable,stackoverflow.com/questions/16856687/… -
@Habib 这也是个好主意!
标签: c# .net sql-server