. Это довольно просто:
Вот рабочая версия вашего кода:
(async function(){
var response = await superagent.get('...')
console.log(response)
})()
ожидание поддерживается во всех текущих браузерах и узлах 8 [/ д2]
Вы должны использовать параметры SQL. Это не только упростит ваш код, но и сделает некоторые виды ошибок в отношении синтаксиса и типов данных крайне маловероятными и защитит от атак SQL-инъекций:
Dim sql = <sql>
UPDATE tblPatientsRecord SET [Names] = @p1,
Licensenumber = @p2,
Address = @p3,
Fullname = @p4,
Birthday = @p5,
[Age] = @p6,
Country = @p7
WHERE PatientID = @p8
</sql>.Value
Using conn = New OleDbConnection(myConnStr),
cmd As New OleDbCommand(sql, conn)
conn.Open()
cmd.Parameters.Add("@p1", OleDbType.VarChar).Value = txtNames.Text
cmd.Parameters.Add("@p2", OleDbType.VarChar).Value = txtLicensenumber.Text
' ...etc
cmd.Parameters.Add("@p6", OleDbType.Integer).Value = intVar
cmd.Parameters.Add("@p7", OleDbType.VarChar).Value = strVar
'the last one is the WHERE
cmd.Parameters.Add("@p8", OleDbType.VarChar).Value = Convert.ToInt32(lblPatientID.Text)
cmd.ExecuteNonQuery()
'... etc
End Using
Есть несколько других часто встречающиеся проблемы, к которым следует стремиться.
Using
будут закрываться и удалять объекты соединения и команды. Как правило, если что-то имеет метод Dispose
, оберните их в блок Using
. Выше показано, как «стекать» 2 объекта (OleDbConnection
и OleDbCommand
) в один оператор Using
, который уменьшает отступ. Add
, а не AddWithValue
. Это позволяет вам указать тип данных для каждого параметра. Без этого поставщик БД должен угадать, что может привести к Datatype mismatch
или даже повредить базу данных в некоторых случаях. WHERE
- это еще один параметр. Часто люди используют параметры для первой части SQL, но конкатенация для предложения WHERE бесполезно. Dim sql = "UPDATE tblPatientsRecord SET [Names] = @p1, " _
& "Licensenumber = @p2, " _
& "Address = @p3, "
[Square Brackets]
, как показано. Лучше не использовать ни в именах. User
, Password
Names
и Values
обычно встречаются слова, используемые в качестве имен столбцов или таблиц, которые приводят к ошибкам синтаксиса SQL. & "Age ='" & txtAge.Text & "'"
. Если БД установлено для хранения Age
как числа, ваш SQL передает его как текст / строку, что может привести к data type mismatch
. То же самое относится к PatientID
и Birthday
, если это поле даты. Общей проблемой конкатенации строк для операторов SQL является слишком много или слишком мало тиков ('
) в результате. Эта возможность не выполняется с параметрами SQL. Основная цель для SQL-параметров - это предотвратить ошибку, если имя «O'Brian» или «O'Reilly» или «Bobby»; DROP TABLE tblPatientsRecord "
Эти принципы применяются для других поставщиков БД, таких как MySql
, SQLite
и SQLServer
. Однако такие детали, как точный символ эвакуации, будут различаться.
Обратите внимание, что Access / OleDB фактически не использует имена параметров (@FirstName
или даже @p2
), , поэтому часто видят параметры в форме «?». Это означает, что вы должны добавить значения параметров (Add
/ AddWithValue
) в том же точном порядке, что и те столбцы, которые отображаются в SQL.
Для получения дополнительной информации см .: