2014-04-23 55 views
1

我有更新問題。怎麼了?代碼編譯,但是當我點擊按鈕,行 - > cmd.ExecuteNonQuery();沒有工作。SQL更新錯誤

該處ERROR

附加信息:參數化查詢 '(@nmo INT,@ rezerwo INT)UPDATE SET oferty = oferty.miejsca @nmo' 預計參數 '@rezerwo',這是不提供。

public partial class oferty1 : System.Web.UI.Page 
    SqlConnection cn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\ddd\Documents\Visual Studio 2013\Projects\sV1\stopowiczeV1\App_Data\ofety-sV1.mdf;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework"); 
    SqlCommand cmd = new SqlCommand(); 

    protected void Page_Load(object sender, EventArgs e) 
cmd.Connection = cn; 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
     var g = GridView1.SelectedRow; 
     string rezerw = GridView1.DataKeys[g.DataItemIndex]["Idoferty"].ToString(); 

     m = GridView1.SelectedRow.Cells[5].Text; 
     int nmo = Convert.ToInt32(m); 
     int rezerwo = Convert.ToInt32(rezerw); 
     if (GridView1.SelectedRow.Cells[5].Text != "" & GridView1.SelectedRow.Cells[0].Text != "") 
     { 
      cn.Open(); 
      nmo--; 
      cmd = cn.CreateCommand(); 
      cmd.CommandText = ("UPDATE oferty SET oferty.miejsca = @nmo WHERE oferty.idoferty = @rezerwo"); 
      cmd.Parameters.Add(new SqlParameter("@nmo", nmo)); 
      cmd.Parameters.Add(new SqlParameter("@rezerwo​", rezerwo)); 
      string snmo = Convert.ToString(nmo); 
      td.miejsca = snmo; 
      cmd.ExecuteNonQuery(); 
      cn.Close(); 
     } 

     db.rezerwacjes.InsertOnSubmit(tc); 
     db.SubmitChanges(); 
    } 
+0

rezerw聲明在哪裏? –

+0

var g = GridView1.SelectedRow; string rezerw = GridView1.DataKeys [g.DataItemIndex] [「Idoferty」]。ToString(); – user3561881

回答

2

SqlParamter的構造可能已經錯誤地解釋第二個參數(SqlDbType代替實際值)。

而不是

cmd.Parameters.Add(new SqlParameter("@nmo", nmo)); 
cmd.Parameters.Add(new SqlParameter("@rezerwo​", rezerwo)); 

嘗試

cmd.Parameters.AddWithValue("@nmo", nmo); 
cmd.Parameters.AddWithValue("@rezerwo​", rezerwo); 

另一點。默認命令類型可以是存儲過程,請嘗試將此添加到您的代碼中:

cmd.CommandType = CommandType.Text; 
+0

仍然是錯誤。 – user3561881

+0

你可以在'cmd.Parameters.AddWithValue(「@ rezerwo」,rezerwo);'並確認「reservo」有一個值被添加到參數? –

+0

/rezerwo /具有正確的值 – user3561881