DateTable中数据是这样的
[name] [cost] [datetime]
张三 10 12点
张三 20 13点
李四 25 1点
张三 5 3点
王五 20 9点
我想让这个new一个DateTable,存放name列的无重复数据
想要的结果是:
[name]
张三
李四
王五
view不怎么会,最好用datetable的select帮我解决一下
[name] [cost] [datetime]
张三 10 12点
张三 20 13点
李四 25 1点
张三 5 3点
王五 20 9点
我想让这个new一个DateTable,存放name列的无重复数据
想要的结果是:
[name]
张三
李四
王五
view不怎么会,最好用datetable的select帮我解决一下
if (chkSelectInResult.Checked == false)
{
DataSet ds = customInfoBll.GetCustomInfos(txtQueryCondition.Text);
dgvResult.DataSource = ds.Tables[0];
}
else
{
DataTable dt = dgvResult.DataSource as DataTable;
if (object.Equals(dt,null))
{
return;
}
string msg = txtQueryCondition.Text;
string strsql = " ts_caller like '%" + msg + "%'";
strsql += " or Convert(ts_create_date,'System.String') like '%" + msg + "%'";
strsql += " or ts_agentid like '%" + msg + "%'";
strsql += " or ts_customername like '%" + msg + "%'";
strsql += " or ts_address like '%" + msg + "%'";
strsql += " or ts_phone1 like '%" + msg + "%'";
strsql += " or ts_phone2 like '%" + msg + "%'";
strsql += " or ts_phone3 like '%" + msg + "%'";
strsql += " or ts_otherphone like '%" + msg + "%'";
strsql += " or ts_source like '%" + msg + "%'";
strsql += " or ts_status like '%" + msg + "%'";
strsql += " or ts_area like '%" + msg + "%'";
strsql += " or ts_email like '%" + msg + "%'";
strsql += " or ts_kind like '%" + msg + "%'";
strsql += " or ts_grade like '%" + msg + "%'";
strsql += " or ts_post like '%" + msg + "%'";
strsql += " or ts_fastkind like '%" + msg + "%'";
strsql += " or Convert(ts_addtime,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_provice,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_city,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_ordertime,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_toagentid,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_sex,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_age,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_ext,'System.String') like '%" + msg + "%'";
strsql += " or Convert(ts_bak,'System.String') like '%" + msg + "%'";
dt.DefaultView.RowFilter = strsql;
/// <summary>
/// DISTINCT
/// </summary>
/// <param name="SourceTable"></param>
/// <param name="FieldNames"></param>
/// <returns></returns>
private DataTable SelectDistinct(DataTable SourceTable, params string[] FieldNames)
{
object[] lastValues;
DataTable newTable;
DataRow[] orderedRows; if (FieldNames == null || FieldNames.Length == 0)
throw new ArgumentNullException("FieldNames"); lastValues = new object[FieldNames.Length];
newTable = new DataTable(); foreach (string fieldName in FieldNames)
newTable.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType); orderedRows = SourceTable.Select("", string.Join(",", FieldNames)); foreach (DataRow row in orderedRows)
{
if (!fieldValuesAreEqual(lastValues, row, FieldNames))
{
newTable.Rows.Add(createRowClone(row, newTable.NewRow(), FieldNames)); setLastValues(lastValues, row, FieldNames);
}
} return newTable;
} private bool fieldValuesAreEqual(object[] lastValues, DataRow currentRow, string[] fieldNames)
{
bool areEqual = true; for (int i = 0; i < fieldNames.Length; i++)
{
if (lastValues[i] == null || !lastValues[i].Equals(currentRow[fieldNames[i]]))
{
areEqual = false;
break;
}
} return areEqual;
} private DataRow createRowClone(DataRow sourceRow, DataRow newRow, string[] fieldNames)
{
foreach (string field in fieldNames)
newRow[field] = sourceRow[field]; return newRow;
} private void setLastValues(object[] lastValues, DataRow sourceRow, string[] fieldNames)
{
for (int i = 0; i < fieldNames.Length; i++)
lastValues[i] = sourceRow[fieldNames[i]];
}
#endregion
DataTable dtDtc = SelectDistinct(原始DataTable, new string[]{"name"}) // name就是你需要实现Distinct的字段名
{
DataTable dt = new DataTable(TableName);
dt.Columns.Add(FieldName, SourceTable.Columns[FieldName].DataType); object LastValue = null;
foreach (DataRow dr in SourceTable.Select("", FieldName))
{
if (LastValue == null || !(ColumnEqual(LastValue, dr[FieldName])))
{
LastValue = dr[FieldName];
dt.Rows.Add(new object[] { LastValue });
}
}
if (ds != null)
ds.Tables.Add(dt);
return dt;
}
网上找的 你试试吧
我只要2-3行的代码
比如dataview的totable(true,)
怎么把datatable中的某一列写到一个新的datatable中?
for (int i=0;i<ds.table[0].count;i++)
{
if (ds.table[1].select("name = "+ds.table[0].row[i][0].toString()+"").toString() =="")
{
DataRow dr = ds.Tables[1].NewRow();
dr["name"] = ds.Tables[0].row[i][0].toString();
ds.Tables[1].Rows.Add(dr);
}
你编译下看,可能还有点问题