vb.net
  • sql-update
  • 2013-03-20 3 views -1 likes 
    -1

    업데이트 문에 문제가 있습니다. 이것은 내 vb.net 서버 측 코드 :vb.net에서 업데이트 쿼리가 작동하지 않습니다.

    Public Function UpdateRow() As DataTable 
    
        Dim query As String = "Update Intranet.dbo.Gn_ISCoordinators SET cUserName='" & tbUsername.Text.Trim() & 
         "',lDeptUser=" & CByte(rblDept.SelectedIndex) & " WHERE cUserName=" & "'" & Session("Edit") & "'" 
        Dim hehe As DataTable = New DataTable() 
        Using adapter1 = New SqlDataAdapter(query, ConfigurationManager.ConnectionStrings("IntranetConnectionString").ConnectionString) 
         adapter1.Fill(hehe) 
         Response.Redirect("~/Home.aspx") 
         Session("Edit") = Nothing 
         Return hehe 
        End Using 
    
    End Function 
    

    그리고 난 여기가 전화 했어 :

    Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click 
    If Not Session("Edit") Is Nothing Then 
         UpdateRow() 
    End If 
    

    나는 RadioButtonList에서 텍스트 상자에서 데이터와 데이터를 얻을하고 업데이트 쿼리를 원하는 하나는 데이터베이스에 있습니다. 내 상황에서 Session("Edit")은 텍스트 상자의 텍스트로 바꾸려는 필드와 같습니다. 버튼을 누르면 변경되지 않습니다. 문제가 정확히 어디입니까?

    도와주세요.

    고지.

    답변

    1

    업데이트 쿼리를 실행하고 있습니다. ExecuteNonQuery를 사용하여이를 실행해야합니다. 어댑터의 Fill 명령은 데이터베이스에서 데이터를 읽지 않습니다. 그리고 데이터가 데이터베이스에 없습니다.

    Public Function UpdateRow() As DataTable 
    
        Dim query As String = "Update Intranet.dbo.Gn_ISCoordinators SET [email protected]" + 
              ",[email protected] WHERE [email protected]" 
        Using con = new SqlConnection(ConfigurationManager.ConnectionStrings("IntranetConnectionString").ConnectionString)  
         con.Open() 
         Dim cmd = new SqlCommand(query, con) 
         cmd.Parameters.AddWithValue("@uname", tbUsername.Text.Trim()) 
         cmd.Parameters.AddWithValue("@dept", CByte(rblDept.SelectedIndex)) 
         cmd.Parameters.AddWithValue("@oldname", Session("Edit")) 
         cmd.ExecuteNonQuery() 
        End Using 
    End Function 
    

    또한 문자열을 연결하여 절대로 SQL 명령을 생성해서는 안됩니다. 이 접근법은 매우 안전한 보안 문제를 야기합니다. Sql Injection

    +0

    'End Function'에서 녹색 줄을 표시하고'Null 참조 예외가 발생할 수 있음 '을 씁니다. 또한, 그것은 나와 함께 작동하지 않습니다. – 7alhashmi

    +0

    어떤 오류가 있습니까? (녹색 선 제외) – Steve

    +0

    녹색 선이 아니라 오류가 없습니다. 그러나 그것은 효과가 없습니다. 나는 이유를 모른다. 버튼을 누른 후에는 그대로 사용자 이름을 유지합니다. 마치 내가 아무것도하지 못했던 것처럼. – 7alhashmi

    관련 문제