2015-05-08 3 views
-1

Часть 1, код ниже - это функция из другого класса.не может обновить базу данных без ошибок

public static void updateData(string SqlCommand) 
{ 
    string strConString = ConfigurationManager.ConnectionStrings["SOConnectionString"].ConnectionString; 
    OleDbConnection conn = new OleDbConnection(strConString); 
    OleDbCommand cmd = new OleDbCommand(SqlCommand, conn); 

    try { 
     conn.Open(); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
    } 
    catch (Exception e) 
    { 
     conn.Close(); 

    } 
} 

вот код для вызова функции выше.

protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 
     { 

      string ID = txtID.Text; 
      string password = txtPassword.Text; 
      string name = txtName.Text; 
      string position = txtPosition.Text; 
      int status = 1; 
      string createOn = validate.GetTimestamp(DateTime.Now); ; 
      string accessRight; 
      if (RadioButton1.Checked) 
       accessRight = "Administrator"; 
      else 
       accessRight = "Non-administrator"; 

      // ClientScript.RegisterStartupScript(this.GetType(), "yourMessage", "alert('" + ID + "ha " + password + "ha " + status + "ha " + accessRight + "ha " + position + "ha " + name + "ha " + createOn + "');", true); 

      string type = (String)Session["type"]; 


      if (type == "update") 
       { 
        string sqlcommand = "UPDATE USERMASTER SET USERPOSITION='"+position+"',USERNAME='"+name+"' WHERE (USERID ='"+ID+"')"; 
        readdata.updateData(sqlcommand); 
        Response.Redirect("UserView.aspx"); 
       } 
      else {    
        if (validate.verifyID(ID) == true) 
        { 
         if (validate.verifyLang((String)Session["Lang"]) == true) 
          lblIDError.Text = "User ID already exist!"; 
         else 
          lblIDError.Text = "用户账号已存在!"; 
        } 
        else{ 
         string sqlcommand = "INSERT INTO USERMASTER (USERID,USERPWD,USERNAME,USERPOSITION,USERACCESSRIGHTS,USERSTATUS,CREATEDATE,CREATEUSERID) VALUES ('" + ID + "','" + password + "','" + name + "','" + position + "','" + accessRight + "','" + status + "', TO_DATE('" + createOn + "'),'" + (string)Session["UserID"] + "')"; 
         readdata.updateData(sqlcommand); 
         Response.Redirect("UserView.aspx"); 

        } 
       } 
      } 

часть 1 код работает хорошо для INSERT, но когда приходят к UPDATE, он не показывает мне ошибку, а также оленья кожа UPDATE данных. кто-нибудь знает, что не так с моим кодом?

+0

Я не знаю, если вам нужны кавычки видения вашего удостоверения личности, поскольку они являются числовыми? также вручную вставляя первичные ключи (что, я думаю, ваш userId, но не знаю точно, потому что я не знаю, как выглядит ваша таблица) - это плохая практика, вы должны использовать столбец автоматического увеличения, а не –

+0

, возможно, 'type! =" update "' :) –

+0

Что такое значение id u для обновления? существуют ли в db? – tharif

ответ

0

Возможно, значение, используемое в операторах обновления, где условие не имеет значения. Вы можете найти с помощью выключателей, которые могут дать вам некоторое представление о поиске ответа, поскольку вы не знаете, что позвольте мне опубликовать здесь, как разбить и найти их.

Ниже приведено изображение, чтобы разбить и просмотреть запрос по значению.

enter image description here

enter image description here