鲜明的列名我有一个SQL查询这样获取列表
SELECT DISTINCT CustomerName FROM Customers
它返回不同customerNames的名单,
我如何在C#
目前我得到这个列表我在DataTable中获取结果,然后在列表中只提取我需要的列。
private List<String> GetDistinctCustomerNames()
{
var dataTable = new DataTable("ResultDataTable");
using (var sqlCommand = new SqlCommand())
{
// set the connection for the commnad
sqlCommand.Connection = sqlConnection;
// assign the insert query as a text to the sql command
sqlCommand.CommandText = "SELECT DISTINCT CustomerName FROM Customers";
using (var sqlDataAdapter = new SqlDataAdapter())
{
sqlDataAdapter.SelectCommand = sqlCommand;
dataTable.Load(sqlCommand.ExecuteReader());
}
if (dataTable.Columns.Contains("CustomerName"))
{
return (from DataRow dataRow in dataTable.Rows select dataRow["CustomerName"].ToString()).ToList();
}
return null;
}
但我不觉得这是一个很好的解决方案。
如果添加了Dapper,你可以做这样的事情:IList的 MYLIST = Dapper.SqlMapper.Query ( sqlConnnection, “SELECT DISTINCT客户名称客户;”)ToList(); –
使用简单的SqlDataReader有什么问题? –
您可以将输出作为XML接收,并使用XML解析器为您创建列表。也许更优雅,虽然可能效率不高。 –