你绑定DataGrid的时候肯定没有绑定数据库中主键。给你个例子看看:
cn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(ConfigurationSettings.AppSettings["ds"]));
string strSQL="select * from material,sort_material,storage where material.sort_num=sort_material.sort_num and storage.storage_num=material.storage_num order by m_num";
da=new OleDbDataAdapter(strSQL,cn);
ds=new DataSet();
cn.Open();
da.Fill(ds);
DataGrid1.DataSource=ds;
DataGrid1.DataKeyField="m_num";//最好是数据库中的主键字段
DataGrid1.DataBind();
cn.Close();//更新数据库
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

TextBox mytb1=(TextBox)e.Item.Cells[1].Controls[0];
TextBox mytb2=(TextBox)e.Item.Cells[2].Controls[0];
TextBox mytb3=(TextBox)e.Item.Cells[3].Controls[0];
TextBox mytb4=(TextBox)e.Item.Cells[5].Controls[0];
cn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(ConfigurationSettings.AppSettings["ds"]));
string strSQL="update material set m_shape='"+mytb1.Text+"',m_price="+mytb2.Text+",m_stocks="+mytb3.Text+",p_name='"+mytb4.Text+"' where m_num="+DataGrid1.DataKeys[(int)e.Item.ItemIndex];?//取得你要的值。
cm=new OleDbCommand(strSQL,cn);
cn.Open();
cm.ExecuteNonQuery();
cn.Close();
DataGrid1.EditItemIndex=-1;
getdata();
}

解决方案 »

  1.   

    这个表是临时表,没有主键的,我定义了也不行,我想得到的是Cells[0],其他后面的都能得到,就Cells[0]为空.<asp:DataGrid id="DataGrid1" runat="server" Font-Size="X-Small" Width="100%" AutoGenerateColumns="False" ForeColor="Black" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" GridLines="Horizontal">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CC3333"></SelectedItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#333333"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#CCCC99"></FooterStyle>
    <Columns>
    <asp:ButtonColumn DataTextField="F_TitleName" HeaderText="职位" CommandName="Select"></asp:ButtonColumn>
    <asp:BoundColumn DataField="F_Count" HeaderText="人数"></asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="White"></PagerStyle>
    </asp:DataGrid>
      

  2.   

    你没有设置Datagrid的DataKeyField属性吧,应该将职位设为DataKeyField