//更改燕子为燕子花 DataRow[] objrow; objrow=objtable.Select("nam='燕' and two='子'"); objrow[0]["nam"]="燕"; objrow[0]["two"]="子花";执行完一次后,就不能再执行了, 因为你已经把燕子改成了燕子花, 就取不到值,objrow[0]["nam"]="燕";报错
To saucer(思归, MS .NET MVP) :俺加过了,加过以后测试第一次显示出来结果了,,,但是主键的值有的显示为1,2,3,5没有4,还有的前面根本没有号码???然后刷新,提示如下:“/asp”应用程序中的服务器错误。 --------------------------------------------------------------------------------索引超出了数组界限。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。这是怎么回事呀???
To panyee(快乐王子):哈,谢了,,俺明白了,,是数组的问题,顺便问一下,我在前面加了一个"num"字段,,是自动编号,,,为什么在删除以后的4,5号都没有了???直接到6了???有没有办法还让他们还按顺利???另外为什么必须加主键????
--------------------------------------------------------------------------------对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
objbuilder=new OleDbCommandBuilder(objadapter);
//把下面的删除
objadapter.UpdateCommand=objbuilder.GetUpdateCommand();
objadapter.InsertCommand=objbuilder.GetInsertCommand();
objadapter.DeleteCommand=objbuilder.GetDeleteCommand();
DataRow[] objrow;
objrow=objtable.Select("nam='燕' and two='子'");
objrow[0]["nam"]="燕";
objrow[0]["two"]="子花";执行完一次后,就不能再执行了, 因为你已经把燕子改成了燕子花,
就取不到值,objrow[0]["nam"]="燕";报错
--------------------------------------------------------------------------------索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。这是怎么回事呀???
<%@ Import NameSpace="System.Data"%>
<%@ Import NameSpace="System.Data.OleDb"%><script language="c#" runat="server">
void Page_Load()
{
string strconnection="Provider=Microsoft.Jet.OleDb.4.0;";
strconnection+=@"Data Source=D:\aspasp\first.mdb";
string strsql="SELECT num,nam,two from thename";
DataSet objdataset=new DataSet();
OleDbConnection objconnection=new OleDbConnection(strconnection);
OleDbDataAdapter objadapter=new OleDbDataAdapter(strsql,objconnection);
objadapter.Fill(objdataset,"you");
a.DataSource=objdataset.Tables["you"].DefaultView;
a.DataBind(); //第二个表格
DataTable objtable=null;
DataRow objnewrow=null;
objtable=objdataset.Tables["you"];
objnewrow=objtable.NewRow();
objnewrow["nam"]="暖";
objnewrow["two"]="暖";
objtable.Rows.Add(objnewrow);
//绑定数据源;
b.DataSource=objtable;
b.DataBind();//更改燕子为燕子花
try{ DataRow[] objrow;
objrow=objtable.Select("nam='燕' and two='子'");
objrow[0]["nam"]="燕";
objrow[0]["two"]="子花";
//绑定数据源;
c.DataSource=objtable;
c.DataBind();
}
catch{}
//删除雨竹
objtable.Rows[3].Delete();
//绑定数据源;
d.DataSource=objtable.DefaultView;
d.DataBind(); //建立数据库链接
OleDbCommandBuilder objbuilder=null;
objbuilder=new OleDbCommandBuilder(objadapter);
objadapter.UpdateCommand=objbuilder.GetUpdateCommand();
objadapter.InsertCommand=objbuilder.GetInsertCommand();
objadapter.DeleteCommand=objbuilder.GetDeleteCommand(); //更新数据库; objadapter.Update(objdataset,"you");
string sqlstr="SELECT num,nam,two from thename";
objconnection.Open();
OleDbCommand command1=new OleDbCommand(sqlstr,objconnection);
e.DataSource=command1.ExecuteReader(CommandBehavior.CloseConnection);
e.DataBind();
}
</script><html>
<table width="100%" align="center">
<tr align="center">
<td align="center">a</td><td>b</td><td>c</td><td>d</td></tr>
<tr align="center">
<td><asp:DataGrid id="a" runat="server"/></td>
<td><asp:DataGrid id="b" runat="server"/></td>
<td><asp:DataGrid id="c" runat="server"/></td>
<td><asp:DataGrid id="d" runat="server"/></td>
</tr>
</table>
<table align="center">
<tr><td>e</td>
<td><asp:datagrid id="e" runat="server"/></td></tr>
</table>
</html>