Sam*_*ile 71 c# datatable ado.net
我需要在内存中使用基于来自GridView的列和方向的DataTable.该函数需要如下所示:
public static DataTable resort(DataTable dt, string colName, string direction)
{
DataTable dtOut = null;
....
}
Run Code Online (Sandbox Code Playgroud)
我需要帮助填写这个功能.我想我可以使用Select语句,但我不知道如何.由于此浏览器,我无法点击评论,但您可以向我展示一个就地或新的DataTable解决方案.对于那些向我显示指针的人来说,我需要一个类似于原型的编码功能.
怎么样:
// ds.Tables[0].DefaultView.Sort="au_fname DESC";
public static void Resort(ref DataTable dt, string colName, string direction)
{
string sortExpression = string.Format("{0} {1}", colName, direction);
dt.DefaultView.Sort = sortExpression;
}
Run Code Online (Sandbox Code Playgroud)
Ber*_*ncı 105
我假设"direction"是"ASC"或"DESC",dt包含一个名为"colName"的列
public static DataTable resort(DataTable dt, string colName, string direction)
{
DataTable dtOut = null;
dt.DefaultView.Sort = colName + " " + direction;
dtOut = dt.DefaultView.ToTable();
return dtOut;
}
Run Code Online (Sandbox Code Playgroud)
或者不创建dtOut
public static DataTable resort(DataTable dt, string colName, string direction)
{
dt.DefaultView.Sort = colName + " " + direction;
dt = dt.DefaultView.ToTable();
return dt;
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex 66
如果您只有一个DataView,则可以使用它进行排序:
table.DefaultView.Sort = "columnName asc";
Run Code Online (Sandbox Code Playgroud)
没试过,但我想你可以用任意数量的DataView做到这一点,只要你引用正确的.
Kᴀτ*_*ᴀτᴢ 14
实际上遇到了同样的问题.对我来说,这很简单:
将数据添加到a Datatable并对其进行排序:
dt.DefaultView.Sort = "columnname";
dt = dt.DefaultView.ToTable();
Run Code Online (Sandbox Code Playgroud)
DataTables有一个重载的Select方法,你可以这样做.请参见此处:http://msdn.microsoft.com/en-us/library/way3dy9w.aspx
但是Select调用的返回值不是DataTable,而是RowData对象的数组.如果要从函数返回DataTable,则必须根据该数据数组从头开始构建DataTable.这是一篇文章,解决并提供了两个问题的示例:http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/157a4a0f-1324-4301-9725-3def95de2bf2/
如果您想按多个方向排序
public static void sortOutputTable(ref DataTable output)
{
DataView dv = output.DefaultView;
dv.Sort = "specialCode ASC, otherCode DESC";
DataTable sortedDT = dv.ToTable();
output = sortedDT;
}
Run Code Online (Sandbox Code Playgroud)
创建一个数据视图。您不能直接对 DataTable 进行排序,但您可以从 DataTable 创建一个 DataView 并对其进行排序。
创建:http ://msdn.microsoft.com/en-us/library/hy5b8exc.aspx
排序:http ://msdn.microsoft.com/en-us/library/13wb36xf.aspx
以下代码示例创建一个视图,显示库存数量小于或等于再订购水平的所有产品,首先按供应商 ID 排序,然后按产品名称排序。
DataView prodView = new DataView(prodDS.Tables["Products"],
"UnitsInStock <= ReorderLevel",
"SupplierID, ProductName",
DataViewRowState.CurrentRows);
| 归档时间: |
|
| 查看次数: |
196033 次 |
| 最近记录: |