我实在是太菜了。

解决方案 »

  1.   

    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    //取得cCode键值的数据
    string codeStr ;
    codeStr=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); //取得cName的值
    string nameStr;
    nameStr=((TextBox)e.Item.Cells[1].Controls[0]).Text; string ageStr;
    ageStr=((TextBox)e.Item.Cells[2].Controls[0]).Text; string addrStr;
    addrStr=((TextBox)e.Item.Cells[3].Controls[0]).Text; System.Data.SqlClient.SqlConnection conn;
    conn=new System.Data.SqlClient.SqlConnection("workstation id=SERVER03;packet size=4096;user id=StudentTest;data source=SERVER03;persist security info=False;initial catalog=Student");
    conn.Open(); string updateStr="Update StudentMsg set cName='"+nameStr+"',iAge="+ageStr+",vAddr='"+addrStr+"' where cCode='"+codeStr+"'";
    System.Data.SqlClient.SqlCommand cmd;
    cmd =new System.Data.SqlClient.SqlCommand(updateStr,conn); int rst;
    rst=cmd.ExecuteNonQuery();
    if (rst!=-1)
    {
    this.Response.Write("更新成功!!!!");
    this.DataGrid1.EditItemIndex=-1;
    this.MyDataBind();
    }
    else
    {
    this.Response.Write("更新成功!!!!");
    }
    }看样子,楼主是一个看书不太认真的人啦。
      

  2.   

    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    { string con = ConfigurationSettings.AppSettings["SqlConnectionString"];
    SqlConnection conn = new SqlConnection(con);
    SqlDataAdapter da = new SqlDataAdapter();
    da.UpdateCommand = new SqlCommand("Sp_Sorts_UpdateCategoryIdAndSortNameWhereID",conn);
    da.UpdateCommand.CommandType = CommandType.StoredProcedure;
    da.UpdateCommand.Parameters.Add("@ID",SqlDbType.Int).Value = DataGrid1.DataKeys[e.Item.ItemIndex];
    da.UpdateCommand.Parameters.Add(new SqlParameter("@SortName",SqlDbType.NVarChar,50));
    da.UpdateCommand.Parameters["@SortName"].Value = System.Convert.ToString(((TextBox)e.Item.Cells[1].Controls[0]).Text);
    da.UpdateCommand.Parameters.Add(new SqlParameter("@CategoryId",SqlDbType.Int));
    da.UpdateCommand.Parameters["@CategoryId"].Value = System.Convert.ToInt32(((TextBox)e.Item.Cells[2].Controls[0]).Text); try 
    {
    da.UpdateCommand.ExecuteNonQuery();
    Response.Write("<script>alert('更新成功!')</script>");
    BindData();
    }
    catch
    {
    Response.Write("<script>alert('更新失败!')</script>");
    return;
    }
    conn.Close();
    }
    我模仿上面的例子写了一个,可为什么提示的是更新失败呢?
      

  3.   

    ALTER PROCEDURE Sp_Sorts_UpdateCategoryIdAndSortNameWhereID
    @CategoryId int,
    @SortName nvarchar(50),
    @ID int
    AS
    UPDATE Sorts
    SET CategoryId = @CategoryId, SortName = @SortName
    WHERE (ID = @ID)
    RETURN 
      

  4.   

    想問下,DataGrid更新回數據庫,必須自己寫代碼,設定DataTable中的值,然后再寫sql來更新嗎?
      

  5.   

    to :catthunder(男儿何不带吴钩) 只需要自己设定DataTable中的值,然后用GetChanges获取差异,使用DataAdapter的Updata用该差异更新数据库即可。