Разделение строки текста из текстового поля с использованием VB.NET - PullRequest
1 голос
/ 15 февраля 2009

Я хочу добавить текстовое поле на веб-страницу, чтобы пользователи могли добавлять теги с разделителями. Когда пользователь отправляет страницу, как извлечь теги из текстового поля и добавить каждый из них в качестве записи в базу данных SQL?

Я хочу использовать VB.NET.

Ответы [ 2 ]

2 голосов
/ 15 февраля 2009

Похоже, вы хотите что-то вроде:

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 голос
/ 15 февраля 2009

Мой способ - отправить значение из текстового поля в хранимую процедуру SQL, разделить текст, а затем вставить отдельные строки.

Все это будет на основе множеств, поэтому очень быстро.

если вы разделите его в VB.NET и отправите отдельные операторы INSERT в SQL, что будет намного медленнее.

Вы можете преобразовать данные с разделителями в текстовом поле в XML и отправить их в SQL, а также использовать их в качестве основы для операторов INSERT. Но лично я думаю, что разделение на SQL предпочтительнее.

Я найду для вас ссылку

Я не нашел работающий пример легко, поэтому вот предложение

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

См. http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648 для рекомендуемых функций SPLIT

Если вы хотите просто сделать INSERT напрямую из VB.NET, вы можете сделать что-то вроде:

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

т.е. вы генерируете составной оператор SELECT в VB.NET, разделив строку тега с разделителями.

(Если могут быть дубликаты тегов и вы хотите удалить дубликаты, используйте «UNION» вместо «UNION ALL»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...