首页 > 解决方案 > 如何拆分文本并插入 SQL Server (VB.NET)

问题描述

我有一个像“AAA#BBB#CCC DDD#EEE#FFF”这样的文本框我想使用 Vb.net 拆分文本并像这样插入到 SQL 表中:插入表 A(主要,原因,结果)值(AAA, BBB, CCC) 插入表 A (MAIN, REASON, RESULT) VALUES (DDD, EEE, FFF)

请帮我

标签: vb.net

解决方案


幸运的是 .net 提供了 String.Split() 方法。您必须使用参数来避免 sql 注入。数据来自用户。

Private Sub OPCode()
    TextBox1.Text = "AAA#BBB#CCC DDD#EEE#FFF"
    Dim split1 = TextBox1.Text.Split() 'no parameters split by space
    'results in an array of 2 elements
    Dim DataForInsert1 = split1(0).Split("#"c) 'small c indicates to compiler that this is a Char
    Dim DataForInsert2 = split1(1).Split("#"c)
    Using cn As New SqlConnection("Your connection String"),
            cmd As New SqlCommand("Insert Into TableA (MAIN, REASON, RESULT) Values (@Main, @Reason, @Result);")
        cmd.Parameters.Add("@Main", SqlDbType.VarChar, 100).Value = DataForInsert1(0)
        cmd.Parameters.Add("@Reason", SqlDbType.VarChar, 400).Value = DataForInsert1(1)
        cmd.Parameters.Add("@Result", SqlDbType.VarChar, 400).Value = DataForInsert1(2)
        cn.Open()
        cmd.ExecuteNonQuery()
        cmd.Parameters("@Main").Value = DataForInsert2(0)
        cmd.Parameters("@Reason").Value = DataForInsert2(1)
        cmd.Parameters("@Result").Value = DataForInsert2(2)
        cmd.ExecuteNonQuery()
    End Using

推荐阅读