这是我正在阅读有关@MSDN 的一种方法,我的问题是,例如,我是否想在存储过程上使用它,因为该存储过程的查询已经指定要从表中选择的列,如下所示:
SELECT Columnsome, columnother, , , , ...FROM thisSQLdbTable
尽管我想实现该特定方法的方法,但从我对 可将数据从 SQL Server 提取到 Asp.net DataTable的“最佳方法”进行的一些研究中,它似乎非常先进。
public static DataTable GetCustomerData(string dataSetName,
string connectionString)
{
DataTable table = new DataTable(dataSetName);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT CustomerID, CompanyName, ContactName FROM dbo.Customers", connection);
DataTableMapping mapping = adapter.TableMappings.Add("Table", "Customers");
mapping.ColumnMappings.Add("CompanyName", "Name");
mapping.ColumnMappings.Add("ContactName", "Contact");
connection.Open();
adapter.FillSchema(table, SchemaType.Mapped);
adapter.Fill(table);
return table;
}
}
或者如果我通过SP
指定所选列进行查询,这不是使用的方法
如果不需要选择/指定列,我实际上可以删除该存储过程
存储过程正在执行特定计算并使用计算结果更新表然后我将其切换为“模式”以从更新的表中选择结果。
我所做的是回收(;给它一个参数(位类型)存储过程,然后询问提供的bool
/bit
参数的值,如果它的状态为真,它会更新(执行它的原始任务)
如果它是假的,它会做一个选择操作,所以我会像使用 2 个单独的命令一样使用它
但现在我已经寻找一种更好的方法来将数据从 db 提取到数据表中
我放弃了两种方式的 SP,如果不打算将它们与我当前的 SP 一起使用,我将通过上面的示例进行选择,因为我当前的 SP 在提供GetCustomersData()
上述服务时会进行预选。
所以问题是我是否需要让函数进行选择,或者我可以使用我的 sp 准备好的选择来提供它,以便使用 GetCustomersData() 来实现它,它只会执行其余任务并且只映射列被预选