2011-03-20 65 views
2

我想從列表框中記錄下列代碼到一個sql數據庫中。但是,它給了我錯誤。這裏是我的代碼。我顯示錯誤行下面的代碼。要SQL數據庫記錄錯誤

Public Class Form1 

Dim baglanti As New SqlClient.SqlConnection("Data Source=localhost\SQLEXPRESS;Initial Catalog=dedektor;Persist Security Info=True;User ID=test;Password=test1") 
Dim adaptor As SqlClient.SqlDataAdapter 
Dim kayit As New DataSet 
Dim datakayit As DataRow 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Dim a As Integer 
    For a = TextBox1.Text To TextBox2.Text 
     ListBox1.Items.Add(a) 
    Next 

     Error line --> adaptor = New SqlClient.SqlDataAdapter("INSERT INTO Table_2([po])VALUES('" + ListBox1.Items.Add(a) + "') ", baglanti) 
     adaptor.Fill(kayit, "table_2") 

    End Sub 

感謝,

+1

1.什麼錯誤? 2.使用參數化查詢。 3.在任何情況下,連接'ListBox1.Items.Add(a)'在語義上絕對看起來不正確。這似乎返回一個'int'[根據其集合中的索引](http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.objectcollection.add.aspx) – 2011-03-20 23:39:15

回答

0

這裏是快速回顧一下。

Dim sqlquery As String = ""INSERT INTO Table_2([po])VALUES(@po)" //sql string 
    Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(sqlquery, con) //Insert    

    Dim a As Integer 
    For a = TextBox1.Text To TextBox2.Text 

    cmd.Parameters.AddwithValue("@po",ListBox1.Items.Add(a)) //use parameters to avoid sql injection 
    cmd.ExecuteNonQuery() //execute insert Command 

    Next 
     //You must call another query to populate your DataSet 
     adaptor.Fill(kayit, "table_2") 

問候