应该是dataset,名字写错了~!改正
解决方案 »
- 谁有将文章转到其他blog(或圈子)的代码
- 大家估计csdn的移动帖子的遮罩技术是如何实现的,遮罩中是服务器空间吧,我们选择的值他是如何给出来的呢?
- datalist中嵌套radiobutton问题
- 如何用asp.net读取远程服务器上的xml?
- 大家来帮帮忙 那位知道asp.net怎样操作Exchange发邮件 ?
- vs2012安装出错 求解
- 打印问题。想打印网页上的局部,是一个表格,这个表格是动态生成的,虽然调用数据库内容,但是调用的数据来自不同库,根据内容动态生成。
- Jmail 4.3发送附件乱码
- 求助!!
- web.config的问题
- <%#DataBinder.Eval(Container.DataItem, "City") %>
- 请教文件下载后不刷新问题
int index = 0;
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if((int)ds.Tables[0].Rows[i]["id"] == 5)
{
index = i;//这就是你想要的位置
}
}
我要是有5000条记录的话~!?
怎么办~!?
用DataGridItem 对象的DataSetIndex属性:返回数据源的索引值如果你绑定到了dataview对象上,DataSetIndex返回的就是dataview里的索引。关键看数据源。DataGridItem dgi=DataGrid1.Items[0];
Response.Write(dgi.DataSetIndex);
好像有个find方法可以实现我的想法,不知各位意见如何?
vals(0)="John"
vals(1)="Smith"
i=dv.find(vals)
新增纪录我想应该这样控制,我只把这条新行增加到datatable的第一行 DataSet ds=(DataSet)ViewState["ds"];
DataRow newrow=ds.Tables[0].NewRow();
newrow[0]=0;
newrow[1]="";
ds.Tables[0].Rows.InsertAt(newrow,0);
DataGrid1.DataSource=ds.Tables[0].DefaultView;
DataGrid1.DataBind();
但有一个前提,你dataview.find(DataRow对象)
你必须要有键字段在DataRow[]里现在你可以得到dataview的index值了
是不是不能确定这个index是不是datatable里的那个index呀!
肯定不是其实你有了这个dataview的index值就可以了
不要只知道去找datatable里的行的索引值,然后通过datatable改变你的dataset直接更改dataview,他会自动映射到datatable里的索引下面是我做的测试
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
DataView myview=((DataSet)ViewState["ds"]).Tables[0].DefaultView;
myview.Sort=e.SortExpression+(String)ViewState["sortby"];
ViewState["sort"]=myview.Sort;
if(ViewState["filter"]!=null)
{
myview.RowFilter=(string)ViewState["filter"];
}
DataGrid1.DataSource=myview;
DataGrid1.DataBind(); switch((string)ViewState["sortby"])
{
case " ASC":
ViewState["sortby"]=" DESC";
break;
case " DESC":
ViewState["sortby"]=" ASC";
break;
}
myview[0][0]="hoho";//注意这行
Response.Write(((DataSet)ViewState["ds"]).GetXml());//打印出来的值证明相应的datatable已经被更改
}
等会,让我慢慢看看
你上面讲的那个
新增纪录我想应该这样控制,我只把这条新行增加到datatable的第一行 DataSet ds=(DataSet)ViewState["ds"];
DataRow newrow=ds.Tables[0].NewRow();
newrow[0]=0;
newrow[1]="";
ds.Tables[0].Rows.InsertAt(newrow,0);
DataGrid1.DataSource=ds.Tables[0].DefaultView;
DataGrid1.DataBind();我觉得不妥当吧
我一般表的第一列一般为自动id,能够强行设置成为0吗!~?
点击“增加”按钮,让datagrid控件的第一行为空,可以填入数据,提交时并没有用到newrow[0]=0的值,只是为了让它占位,并且符合从数据库表映射过来的datatable的字段类型,iId列也是自增列例如:
填充数据集的sql
string sql="select iId,cParamValue from t_EnumType where cParamDescription='"+sort+"' order by iId Desc";更新数据库表的sql
insert t_EnumType(cParamDescription,cParamValue) values('"+Description+"','"+Value+"'
)";
点击“增加”按钮,让datagrid控件的第一行为空,可以填入数据,提交时并没有用到newrow[0]=0的值,只是为了让它占位,并且符合从数据库表映射过来的datatable的字段类型,iId列也是自增列例如:
填充数据集的sql
string sql="select iId,cParamValue from t_EnumType where cParamDescription='"+sort+"' order by iId Desc";更新数据库表的sql
insert t_EnumType(cParamDescription,cParamValue) values('"+Description+"','"+Value+"'
)";
点击“增加”按钮,让datagrid控件的第一行为空,可以填入数据,提交时并没有用到newrow[0]=0的值,只是为了让它占位,并且符合从数据库表映射过来的datatable的字段类型
dv.Filter = @"ID = '"+strID+"'"; ---假设id为字符类型
假设有个字段为name,在select语句中的位置为2,则可如下得到name值
strName = dv.Row.ItemArray[1].ToString();
....
dv.RowFilter = @"ID = '"+strID+"'"; ---假设id为字符类型
假设有个字段为name,在select语句中的位置为2,则可如下得到name值
foreach(DataRowView drv in dv)
{
strName = drv.Row.ItemArray[1].ToString();
....
}
我今天没有时间看,明天答复你