Ron*_*rby 18 .net c# sql-server datatable ado.net
使用sql server表的模式创建Empty DataTable对象的最佳方法是什么?
Ric*_*d R 16
所有这些解决方案都是正确的,但是如果您想要为此方案简化的纯代码解决方案.
由于在ExecuteReader函数上指定了CommandBehavior.SchemaOnly,因此在此解决方案中不返回任何数据(命令行为文档)
CommandBehavior.SchemaOnly解决方案将添加SET FMTONLY ON; 在为您执行查询之前执行sql,这样可以保持代码清洁.
public static DataTable GetDataTableSchemaFromTable(string tableName, SqlConnection sqlConn, SqlTransaction transaction)
{
DataTable dtResult = new DataTable();
using (SqlCommand command = sqlConn.CreateCommand())
{
command.CommandText = String.Format("SELECT TOP 1 * FROM {0}", tableName);
command.CommandType = CommandType.Text;
if (transaction != null)
{
command.Transaction = transaction;
}
SqlDataReader reader = command.ExecuteReader(CommandBehavior.SchemaOnly);
dtResult.Load(reader);
}
return dtResult;
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*Dev 10
我认为值得一提的一个声明是SET FMTONLY:
SET FMTONLY ON;
SELECT * FROM SomeTable
SET FMTONLY OFF;
Run Code Online (Sandbox Code Playgroud)
由于SET FMTONLY打开时的请求,不会处理任何行或将其发送到客户端.
这可能很方便的原因是因为您可以提供任何查询/存储过程并仅返回结果集的元数据.
| 归档时间: |
|
| 查看次数: |
23396 次 |
| 最近记录: |