myconnection.Open();
SqlDataReader dr = myyommand.ExecuteReader(CommandBehavior.CloseConnection);

解决方案 »

  1.   

    晕呀,这是误导。楼主问的是更新,更新不应该用ExecuteReader,而是ExecuteNonQuery()接下来,就是
    赋值;
    myconnection.Open();
    myyommand.ExecuteNonQuery();
      

  2.   

    用vb.net接下来应该是myyommand.ExecuteReader,然后就是conn.close()
      

  3.   

    string sql="update people set no=@no,name=@name where no=@no";
    SqlCommand  mycommand = new SqlCommand (sql, myconnection);
    mycommand.Parameters.Add(new SqlParameter("@no",SqlDbType.Char,10));
    mycommand.Parameters["@no"].Value = ((TextBox)e.Item.Cells[0].Contorls[0]).Text;
    mycommand.Parameters.Add(new SqlParameter("@name",SqlDbType.Char,10));
    mycommand.Parameters["@name"].Value = ((TextBox)e.Item.Cells[1].Contorls[0]).Text;
    mycommand.ExecuteNonQuery();
      

  4.   

    查以下MSDNms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWebUIWebControlsDataGridClassUpdateCommandTopic.htm
    以及
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatasqlclientsqlparameterclasstopic.htm
      

  5.   

    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatasqlclientsqlparameterclasstopic.htm
      

  6.   

    呵,原来你是赋值不明白。早说嘛,省得分被别人抢了 :)同意chnking(kent)的方法。不过如果你按三层结构写,思路上就会清晰些,代码也比较清爽。但还是慢慢来,先把基本的搞清楚了。我们也是这样一步步走过来的。唯一的经验是书上多找找,找不到再看看精华区,平时多看看已解决区。再不行就提问题。
      

  7.   

    string sql="update people set no=@no,name=@name where no=@no";
    SqlCommand  mycommand = new SqlCommand (sql, myconnection);
    mycommand.Parameters.Add(new SqlParameter("@no",SqlDbType.Char,10));
    mycommand.Parameters["@no"].Value = ((TextBox)e.Item.Cells[0].Contorls[0]).Text;
    mycommand.Parameters.Add(new SqlParameter("@name",SqlDbType.Char,10));
    mycommand.Parameters["@name"].Value = ((TextBox)e.Item.Cells[1].Contorls[0]).Text;
    mycommand.ExecuteNonQuery();
    各位这样写不行呀,它会报错!!!
    显示:数据转换出错
      
      

  8.   

    请参考下例:
    public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
        {
            String updateCmd = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = @Phone, "
                 + "address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id";        SqlCommand myCommand = new SqlCommand(updateCmd, myConnection);        myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
            myCommand.Parameters.Add(new SqlParameter("@LName", SqlDbType.NVarChar, 40));
            myCommand.Parameters.Add(new SqlParameter("@FName", SqlDbType.NVarChar, 20));
            myCommand.Parameters.Add(new SqlParameter("@Phone", SqlDbType.NChar, 12));
            myCommand.Parameters.Add(new SqlParameter("@Address", SqlDbType.NVarChar, 40));
            myCommand.Parameters.Add(new SqlParameter("@City", SqlDbType.NVarChar, 20));
            myCommand.Parameters.Add(new SqlParameter("@State", SqlDbType.NChar, 2));
            myCommand.Parameters.Add(new SqlParameter("@Zip", SqlDbType.NChar, 5));
            myCommand.Parameters.Add(new SqlParameter("@Contract", SqlDbType.NVarChar,1));        myCommand.Parameters["@Id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];        String[] cols = {"@Id","@LName","@FName","@Phone","@Address","@City","@State","@Zip","@Contract"};
            Message.InnerHtml = "";        int numCols = e.Item.Cells.Count;
            for (int i=2; i<numCols-1; i++) //skip first, second and last column
            {
                String colvalue =((System.Web.UI.WebControls.TextBox)
                    e.Item.Cells[i].Controls[0]).Text;
                    
                // check for invalid values
                switch (cols[i-1])
                {
                    case "@LName":
                        if ( !InputValidator.IsValidAnsiName(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: Last Name - " + InputValidator.AnsiNameErrorString + "<br>";
                        }
                        break;
                    case "@FName":
                        if ( !InputValidator.IsValidAnsiName(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: First Name - " + InputValidator.AnsiNameErrorString + "<br>";
                        }
                        break;
                    case "@Phone":
                        if ( !InputValidator.IsValidAnsiPhoneNumber(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: Phone - " + InputValidator.AnsiPhoneErrorString + "<br>";
                        }
                        break;
                    case "@Address":
                        if ( !InputValidator.IsValidAnsiAddress(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: Address - " + InputValidator.AnsiAddressErrorString + "<br>";
                        }
                        break;
                    case "@City":
                        if ( !InputValidator.IsValidAnsiCityOrState(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: City - " + InputValidator.AnsiCityStateErrorString + "<br>";
                        }
                        break;
                    case "@State":
                        if ( !InputValidator.IsValidAnsiTwoCharacterState(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: State - " + InputValidator.AnsiTwoCharacterStateErrorString + "<br>";
                        }
                        break;
                    case "@Zip":
                        if ( !InputValidator.IsValidFiveDigitZipCode(colvalue) )
                        {
                            Message.InnerHtml += "ERROR: Zip Code - " + InputValidator.AnsiBasicZipCodeErrorString + "<br>";
                        }
                        break;
                }            // check for null values in required fields
                if (i<6 && colvalue == "")
                {
                    Message.InnerHtml += "ERROR: Null values not allowed for " + cols[i-1] + "<br>";
                }            myCommand.Parameters[cols[i-1]].Value = colvalue;
            }
            
            if ( Message.InnerHtml != "" )
            {
                Message.Style["color"] = "red";
                return;
            }        //append last row, converting true/false values to 0/1
            if (String.Compare(((System.Web.UI.WebControls.TextBox)
                e.Item.Cells[numCols-1].Controls[0]).Text, "true", true, CultureInfo.InvariantCulture)==0)
                myCommand.Parameters["@Contract"].Value =  "1";
            else
                myCommand.Parameters["@Contract"].Value =  "0";        myCommand.Connection.Open();        try
            {
                myCommand.ExecuteNonQuery();
                Message.InnerHtml = "<b>Record Updated</b><br>" + updateCmd;
                MyDataGrid.EditItemIndex = -1;
            }
            catch (SqlException exc)
            {
                if (exc.Number == 2627)
                    Message.InnerHtml = "ERROR: A record already exists with the same primary key";
                else
                    Message.InnerHtml = "ERROR: Could not update record, please ensure the fields are correctly filled out";
                Message.Style["color"] = "red";
            }        myCommand.Connection.Close();        BindGrid();
        }    public void BindGrid()
        {
            SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection);        DataSet ds = new DataSet();
            myCommand.Fill(ds, "Authors");        MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;
            MyDataGrid.DataBind();
        }