복붙노트

[SQL] SQL 서버에 데이터를 삽입하는 방법

SQL

SQL 서버에 데이터를 삽입하는 방법

내 코딩 어떤 문제에? 나는 MS 데이터 내가 프런트 엔드로 C #을 사용하고 데이터베이스와 같은 MS SQL 해요 .. SQL 수 없습니다 삽입 ...

name = tbName.Text;
userId = tbStaffId.Text;
idDepart = int.Parse(cbDepart.SelectedValue.ToString());

string saveStaff = "INSERT into tbl_staff (staffName,userID,idDepartment) " +
                   " VALUES ('" + name + "', '" + userId +"', '" + idDepart + "');";

SqlCommand querySaveStaff = new SqlCommand(saveStaff);

try
{
querySaveStaff.ExecuteNonQuery();
}
catch
{
//Error when save data

MessageBox.Show("Error to save on database");
openCon.Close();
Cursor = Cursors.Arrow;
}

해결법

  1. ==============================

    1.당신은 Command 개체의 집합을 연결 속성을 가지고 피하기 SQL 주입에 parametersized 쿼리 대신 하드 코딩 된 SQL을 사용합니다.

    당신은 Command 개체의 집합을 연결 속성을 가지고 피하기 SQL 주입에 parametersized 쿼리 대신 하드 코딩 된 SQL을 사용합니다.

     using(SqlConnection openCon=new SqlConnection("your_connection_String"))
        {
          string saveStaff = "INSERT into tbl_staff (staffName,userID,idDepartment) VALUES (@staffName,@userID,@idDepartment)";
    
          using(SqlCommand querySaveStaff = new SqlCommand(saveStaff))
           {
             querySaveStaff.Connection=openCon;
             querySaveStaff.Parameters.Add("@staffName",SqlDbType.VarChar,30).Value=name;
             .....
             openCon.Open();
    
             querySaveStaff.ExecuteNonQuery();
           }
         }
    
  2. ==============================

    2.나는 당신이 당신의 명령 개체에 연결 개체를 전달할 수 부족 생각합니다. 그리고 당신이 그것에 대해 명령 및 매개 변수를 사용할 경우 훨씬 낫다.

    나는 당신이 당신의 명령 개체에 연결 개체를 전달할 수 부족 생각합니다. 그리고 당신이 그것에 대해 명령 및 매개 변수를 사용할 경우 훨씬 낫다.

    using (SqlConnection connection = new SqlConnection("ConnectionStringHere"))
    {
        using (SqlCommand command = new SqlCommand())
        {
            command.Connection = connection;            // <== lacking
            command.CommandType = CommandType.Text;
            command.CommandText = "INSERT into tbl_staff (staffName, userID, idDepartment) VALUES (@staffName, @userID, @idDepart)";
            command.Parameters.AddWithValue("@staffName", name);
            command.Parameters.AddWithValue("@userID", userId);
            command.Parameters.AddWithValue("@idDepart", idDepart);
    
            try
            {
                connection.Open();
                int recordsAffected = command.ExecuteNonQuery();
            }
            catch(SqlException)
            {
                // error here
            }
            finally
            {
                connection.Close();
            }
        }
    }
    
  3. ==============================

    3.

    string saveStaff = "INSERT into student (stud_id,stud_name) " + " VALUES ('" + SI+ "', '" + SN + "');";
    cmd = new SqlCommand(saveStaff,con);
    cmd.ExecuteNonQuery();
    
  4. from https://stackoverflow.com/questions/12241084/how-to-insert-data-into-sql-server by cc-by-sa and MIT license