2013-11-25 1 views
0
' Create the Connection and Recordset objects. 
    Set conn = New ADODB.Connection 
    Set rs = New ADODB.Recordset 
    Dim val As String 
    val = Range("B5").Value 


    ' Open the connection and execute. 
    conn.Open sConnString 

    Dim item As String 
    item = "INSERT INTO [IndustrialComp].[dbo].[Header](" 
    item = item & " [server_name] " 

    item = item & " )Values(" 
    item = item & " '" & val & "')" 


    conn.Execute item 

Приведенный выше код вставки все, что находится в Вейл B5 в SQL-сервер 08 Databse (industcomp) таблица с именем заголовка и collumn имени имя_серв.вставки данных из EXCEL в БД

Я хочу, чтобы вставить несколько значений в эту базу данных. Три столбца - это имя_сервера, физическое и виртуальное.

например b5 insert into имя_сервера .... c5 вставить в физическое ... d5 вставить в virt.

Должен ли я объявлять несколько строк или есть способ в основном перечислить значения для сопоставимых столбцов?

Благодаря

ответ

0

Вы могли бы сделать это таким образом

'Create the Connection and Recordset objects. 
Set conn = New ADODB.Connection 
Set rs = New ADODB.Recordset 
Dim val As String, val2 as string, val3 as string 
val = Range("B5").Value 
val2 = Range("C5").Value 
val3 = Range("D5").Value 

' Open the connection and execute. 
conn.Open sConnString 

Dim item As String 
item = "INSERT INTO [IndustrialComp].[dbo].[Header](" 
item = item & " [server_name], [phys], [virt] " 

item = item & " )Values(" 
item = item & " '" & val & "', '" & val2 & "', '" & val3 & "')" 


conn.Execute item 

Это хорошо, если вы находитесь в контроле ввода. Если вы передаете третьему лицу, будьте очень осторожны с SQL-инъекцией.

Пользователь может, например, поместить следующее в B5 клетки

», '', ''); СТРЕЛКА ЗАДЕРЖКИ ТАБЛИЦЫ; -

и у вас возникнут проблемы, если соединение имеет права.

Всегда дезинфицируйте пользовательский ввод в такой ситуации и используйте параметризованный SQL везде, где это возможно.

Надеюсь, это поможет.

+0

Thats great! спасибо за помощь – user3013325

 Смежные вопросы

  • Нет связанных вопросов^_^