我有更新问题。怎么了?
代码编译,但是当我点击按钮时,该行 - > cmd.ExecuteNonQuery();没用。
HERE ERROR
附加信息:参数化查询'(@ nmo int,@ rezerwo int)UPDATE oferty SET 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 :(得分: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;