簡體   English   中英

使用VB.NET從文本框中拆分文本字符串

[英]Splitting a string of text from textbox using VB.NET

我想在網頁上添加一個文本框,以便用戶添加以空格分隔的標簽。 當用戶提交頁面時,如何從文本框中取出標簽並將每個標簽添加為SQL數據庫中的記錄?

我想使用VB.NET。

聽起來您想要這樣的東西:

Using connection as New SqlConnection("connection string")
    connection.Open()

    For Each tag As String In TextBox.Split(CChar(" "))
        Using command as New SqlCommand("INSERT INTO UsedTags(Tag) VALUES(@Tag)", connection)
            command.Parameters.Add("@Tag", SqlDbType.varchar).value = tag

            Try
                command.ExecuteNonQuery()
            Catch ex As SqlException
                Debug.WriteLine(ex.ToString())
            End Try
        End Using
    End For
End Using

未經測試,但應足夠接近您的需求。

我的方法是將值從“文本框”發送到SQL存儲過程,將文本拆分為“ SPLIT”,然后插入各個行。

所有這些將基於集合,因此非常快。

如果在VB.NET中將其拆分,然后將各個INSERT語句發送到SQL,則速度會慢得多。

您可以將文本框分隔的數據轉換為XML,然后將其發送到SQL,並將其用作INSERT語句的基礎。 但是我個人認為最好在SQL中拆分它。

我會為您找到一個鏈接

我沒有輕易找到可行的示例,所以這里有個建議

INSERT INTO UsedTags
(
    Tag
)
SELECT SplitValue
FROM dbo.MySplitFunction(@ListOfTags)

有關建議的SPLIT功能,請參見http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648

如果您只想直接從VB.NET進行INSERT,則可以執行以下操作:

INSERT INTO UsedTags
(
    Tag
)
SELECT "Tag1"
UNION ALL
SELECT "Tag2"

也就是說,您在VB.NET中生成了復合SELECT語句,該語句已分隔定界的標記字符串。

(如果可能有重復的標簽,並且您要刪除重復的標簽,請使用“ UNION”而不是“ UNION ALL”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM