2017-04-19 64 views
-2

我有一个数组像下面如何向所有数组项添加一些字符串?

(0) = "apple" 
(1) = "orange" 

我怎样才能一些字符串数组添加到所有的项目吗?像苹果成为 '苹果',橙色成为 '橙色'

编辑

Private Sub test() 
     Dim txtReader As TextReader = New StreamReader("data.csv") 
     Dim parser = New CsvParser(txtReader) 
     Dim str As String = "" 

     'Ignore first line 
     parser.Read() 

     While True 
      Dim row = parser.Read() 
      If row Is Nothing Then 
       Exit While 
      End If 

      str &= $"({String.Join(",", row)})," 
     End While 

     str_record = str.TrimEnd(",") 
End Sub 

Private Sub Model_Insert() 
    Dim data As String = "" 
    Dim query As String = "INSERT INTO main_item(item_code,item_name,item_desc,item_unitprice,item_barcode,dept_id,cat_id,gst_id,set_item,active)" & 
          "VALUES " & str_record & "" 

    Using cmd = New MySqlCommand(query, conn) 
     cmd.ExecuteNonQuery() 
    End Using 
End Sub 

我试着去创建一个字符串,并用它在INSERT INTO

+0

你可以尝试更清楚,因为它没有多大意义阵列通常像这样的工作:'点心水果( )As String = {“apple”,“orange”,“...”}' – Mederic

+0

现在你已经完全修改了你的问题。阵列在哪里?你为什么不在第一时间发布你真正的问题? –

+1

请不要这样做。使用参数化查询,不要使用字符串连接 – Pikoh

回答

4

使用For -loop:

Dim array = {"apple", "orange"} 
For i As Int32 = 0 To array.Length - 1 
    array(i) = $"'{array(i)}'" 
Next 

如果您还不能使用字符串插值,请使用String.Format(或字符串连接):

For i As Int32 = 0 To array.Length - 1 
    array(i) = String.Format("'{0}'", array(i)) 
Next 
+0

是否有可能在你的第二个解决方案中加入str&= $“({String.Join(”,“,array)})”,所以我不必使用for循环? – vbnewbie

+0

@vbnewbie:不,但为什么你不想使用for循环?我以为你需要修改数组中的所有字符串。或者你想要一个单一的字符串作为结果? –

+0

@vbnewbie:我已经给你演示了如何使用sql参数 –

0

如果你不介意重新创建数组,你可以使用Linq Select

Dim testarray As String() = New String() {"orange", "apple"} 
testarray = testarray.Select(Function(x) String.Format("'{0}'", x)).ToArray()