我想在网页上添加一个文本框,以便用户添加空格分隔的标签。当用户提交页面时,如何从文本框中取出标签并将每个标签作为记录添加到SQL数据库中?
我想使用VB.NET。
答案 0 :(得分:2)
听起来像你想要的东西:
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
未经测试,但应足够接近您的需求。
答案 1 :(得分:1)
我的方法是将文本框中的值发送到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”)