see:SqlConnection cnn=new SqlConnection("server=BEAR;user id=sa;initial catalog=123;persist security info=True;");
cnn.Open();
SqlDataAdapter da=new SqlDataAdapter("select * from ta",cnn);
DataTable dt=new DataTable();
da.Fill(dt);
dt.DefaultView.RowFilter="id>'4'";
DataTable TempTable=dt.Clone();
for(int i=0;i<dt.DefaultView.Count;i++)
{
DataRow row=TempTable.NewRow();
for(int j=0;j<TempTable.Columns.Count;j++)
{
row[j]=dt.DefaultView[i][j];
}
TempTable.Rows.Add(row);
}
dataGrid1.DataSource=TempTable;cnn.Close();
cnn.Open();
SqlDataAdapter da=new SqlDataAdapter("select * from ta",cnn);
DataTable dt=new DataTable();
da.Fill(dt);
dt.DefaultView.RowFilter="id>'4'";
DataTable TempTable=dt.Clone();
for(int i=0;i<dt.DefaultView.Count;i++)
{
DataRow row=TempTable.NewRow();
for(int j=0;j<TempTable.Columns.Count;j++)
{
row[j]=dt.DefaultView[i][j];
}
TempTable.Rows.Add(row);
}
dataGrid1.DataSource=TempTable;cnn.Close();
解决方案 »
- 学web app,用GridView时如何在编辑后更新时将更改过的数据生成日志啊?
- winform问题
- 从DataGrid到GridView遇到的问题?在线急等。。。。
- 将xml文件读到treeview控件中形成树形菜单,怎样实现拖动菜单节点上下移动?
- 关于多线程中对象同步的问题
- 关于鼠标显示 (菜鸟问题)
- 一个用户控件如何设置父窗体的状态栏的text...?
- C#中的指针问题。
- 请问用Visual Studio.Net作开发时应怎样进行分工合作呢?
- 在VS2013中新建SQL Server项目,如何使用?
- c#输出到Excel的一个问题,急!
- 请教C#中的System.Drawing.Icon类对象怎么存文件名?
private DataTable dt;
....Form_Load(...)
{
...
dataGrid1.DataSource = dt;
}
... button1_click(...)
{
int a = dt.Rows.Count;
}webForm的话就很不一样,页面刷新数据源就没了,无论你 DataView a = dataGrid1.DataSource as DataView都是取不到的
举个例子,DataTable1.Rows[0].Delete();实际上这一行并没有真的删除了,而是将这一行的状态改为System.Data.DataRowState.Deleted,绑定的时候就自动跳过,不显示这一行;对你上面的例子,试一下
Console.Write(dt.Rows.Count);
dt.AcceptChanges();
Console.Write(dt.Rows.Count);
cnn.Open();
SqlDataAdapter da=new SqlDataAdapter("select * from ta",cnn);
DataTable dt=new DataTable();
da.Fill(dt);
dt.DefaultView.RowFilter="id>'4'";
DataTable TempTable=dt;
dataGrid1.DataSource=TempTable;cnn.Close();我试过的绝对没问题。
---------------------------------
你说你的代码是:
myDs.Tables[0].DefaultView.RowFilter = @"从业人口女> 200";
myDt = myDs.Tables[0];改为下面的试一下:
myDs.Tables[0].DefaultView.RowFilter = "从业人口女> '200'";
后写如下面的代码,显示全是unchange的,而且RowState并没有那个值是代表被筛选掉的
foreach(DataRow row in dt.Rows)
Console.WriteLine(row.RowState);
DataTable dt = dv.Table.Clone();
foreach(DataRowView drv in dv){
DataRow dr = dt.NewRow();
for(int x=0; x < dv.Table.Columns.Count; x++) {
dr[x] = drv[x].ToString();
}
dt.Rows.Add(dr);
}
return dt;
}
哎!可是如果我一个DataView有10万条以上的数据,如用ADD填充是不是有点慢呀????
还有没有真接转换的方法呀!