Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

masukkan beberapa catatan pada satu klik pada tombol secara dinamis

Jika Anda tidak tahu persis jumlah subjek untuk memasukkan tanda - bagaimana kita bisa membuat kueri untuk melakukannya?

Tidak pernah kurang untuk menunjukkan kepada Anda untuk melindungi terhadap serangan SQL Injection, Anda menempatkan Anda SQL di Stored Procs:

create PROCEDURE [dbo].[pr_GetAssignedSubjectsByFacultyIdAndSemester]
@FacultyID int,
@Semester nvarchar(MAX)
AS
BEGIN
SET NOCOUNT ON;
SELECT [Faculty], [Subjects],[CreatedBy],[CreatedDate],[ModifiedBy],[ModifiedDate]
 FROM [dbo].[tblNotSure]
WHERE [FacultyID] = @FacultyID
AND [Semester] = @Semester
AND [IsDeleted] = 0
END

Kemudian dalam kode yang kita sebut prosedur tersimpan, perhatikan Perintah Parameterised, ini mencegah serangan SQL Injection. Misalnya kita mengetik di semester ddl/textbox (atau menggunakan FireBug untuk mengedit nilai elemen) 1 UNION SELECT * FROM Master.Users - mengeksekusi SQL ad-hoc ini dapat mengembalikan daftar akun pengguna SQL tetapi melewati perintah yang diparameterisasi menghindari masalah:

public static aClassCollection GetAssignedSubjectsByFacultyIdAndSemester(int facultyId, string semester)
{
var newClassCollection = new aClassCollection();
    using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConn"].ConnectionString))
    {
        using (var command = new SqlCommand("pr_GetAssignedSubjectsByFacultyIdAndSemester", connection))
        {
            try
            {
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@facultyId", facultyId);
                command.Parameters.AddWithValue("@semester", semester);
                connection.Open();
                SqlDataReader dr = command.ExecuteReader();
                while (dr.Read())
                {
                    newClassCollection.Add(new Class(){vals = dr["vals"].ToString()});
                }
            }
            catch (SqlException sqlEx)
            {
             //at the very least log the error
            }
            finally
            {
             //This isn't needed as we're using the USING statement which is deterministic                    finalisation, but I put it here (in this answer) to explain the Using...
                connection.Close();
            }
        }
    }

    return newClassCollection;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server XML ada()

  2. SQL Server 2005:pisahkan string menjadi array dan dapatkan array (x)?

  3. SQL Server 2017:Mengimpor Data CSV dari Linux ke Salesforce dengan SSIS

  4. Cara Menggunakan OBJECT_ID() pada Objek Lintas Database di SQL Server

  5. Gunakan OBJECTPROPERTY() untuk Menentukan Apakah Objek adalah Tampilan di SQL Server