2016-12-03 3 views
0
var conString = ConfigurationManager.ConnectionStrings["CONSTRING"].ConnectionString; 
SqlConnection con = new SqlConnection(conString); 
string uname = Session["un"].ToString(); 
Label sid = (Label)DetailsView1.Rows[1].Cells[1].Controls[0].FindControl("lblsid"); 
TextBox nam = (TextBox)DetailsView1.Rows[2].Cells[1].Controls[0].FindControl("lblname"); 
TextBox lnam = (TextBox)DetailsView1.Rows[3].Cells[1].Controls[0].FindControl("lbllname"); 
TextBox cont = (TextBox)DetailsView1.Rows[4].Cells[1].Controls[0].FindControl("lblcon"); 
TextBox ei = (TextBox)DetailsView1.Rows[5].Cells[1].Controls[0].FindControl("lblei"); 
TextBox add = (TextBox)DetailsView1.Rows[6].Cells[1].Controls[0].FindControl("lbladd"); 
TextBox cit = (TextBox)DetailsView1.Rows[7].Cells[1].Controls[0].FindControl("lblcit"); 
DropDownList typ = (DropDownList)DetailsView1.Rows[8].Cells[1].Controls[0].FindControl("lbltyp"); 
cmd.Connection = con; 
cmd.CommandText = "update seller set fname ='" + nam.Text + "', lname ='" + lnam.Text + "', contact ='" + cont.Text + "', address ='" + add.Text + "', city ='" + cit.Text + "', type='" + typ.SelectedValue + "' where sid=" + sid.Text + ""; 
cmd.Connection.Open(); 

cmd.ExecuteNonQuery(); 

DetailsView1.ChangeMode(DetailsViewMode.ReadOnly); 
BindData(); 

이 방법은 컨트롤을 찾는 것이지만 저는 쿼리에서 Sid 값을 전달하는 방법을 모릅니다. 어떤 사람이 도와 줄 수 있니? C에서 작업 #어떻게 필드 안에 레이블 값을 전달할 수 있습니까

+0

이 WPF 또는 WinForms 기술은 무엇입니까? – ChrisF

+0

나중에 참조 할 : [엄마의 공격] (http://stackoverflow.com/questions/332365/how-does-the-sql-injection-from-the-bobby-tables-xkcd-comic-work) – Steve

+0

@ ChrisF는 datagrid 또는 gridview와 함께 ASP.Net WebForms처럼 보입니다 –

답변

0

매개 변수를 사용하십시오. 아래에서는 이름을 위해 그렇게하는 방법을 보여 드리고자합니다. 이런 식으로 나머지를 할 수 있습니다.

SqlCommand cmd = new SqlCommand(
    "update seller set fname = @firstName", con); 

// 2. define parameters used in command object 
SqlParameter param = new SqlParameter(); 
param.ParameterName = "@firstName"; 
param.Value = nam; 

// 3. add new parameter to command object 
cmd.Parameters.Add(param);