Предполагается, что вы используете SqlServer в качестве базы данных:
Здесь вам пригодятся классы SqlCommand и SqlConnection, так что я бы посмотрел на них.
Также сохраняются следующие процедуры:отличный способ сделать это, так как они более безопасны и работают немного быстрее, чем отправка запроса на сервер.Краткий обзор преимуществ сохраненных процедур Google поможет вам здесь
Следует отметить, что существуют различные способы выполнения вашего запроса.Класс SqlCommand имеет довольно много методов, например, ExecuteNonQuery () просто запустит команду sql, которая не возвращает данные (например, вставку или удаление), тогда как ExecuteScalar выполнит запрос, который возвращает только одно значение.
Существуют и другие варианты, такие как создание DataTable, а затем использование DataAdapter для заполнения таблицы.
Я опубликую несколько примеров кода подключения к моей базе данных, извините, он в VB, но вы сможете легко конвертировать в C #достаточно.
Во-первых, это соединение с использованием адаптера данных
Dim dt As New DataTable
' There are plenty of options you can use with the SqlConnection constructor so you can just modify this to suit your needs
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spGetMenuItemsForTickets"
' parameters could be added here by doing
' cmd.parameters.addwithvalue("@ParamName",value)
cmd.Connection = conn
Using da As New SqlDataAdapter(cmd)
conn.Open()
da.Fill(dt)
conn.Close()
End Using
Это пример использования ExecuteScalar
Dim names As String = String.Empty
Dim ds As New DataTable
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spGetUserNamesForUpdate"
cmd.Parameters.AddWithValue("@TicketID", TicketID)
cmd.Connection = conn
conn.Open()
names = cmd.ExecuteScalar()
conn.Close()
Это пример ExecuteNonQuery. Он в значительной степени идентичен Scalar, но без возвращаемого значения
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spAddFileToTicket"
cmd.Parameters.AddWithValue("@ticketID", TicketID)
cmd.Parameters.AddWithValue("@filename", Filename)
cmd.Parameters.AddWithValue("@filePath", Filepath)
cmd.Parameters.AddWithValue("@comments", Comment)
cmd.Connection = conn
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Также в вашем SQL, где вы делаете LIKE ' __ '
, вы, вероятно, захотите сделатьLIKE '%__%'
, поскольку% являются символами подстановки, вы можете использовать один или оба из них, но простое выполнение LIKE '__'
не будет соответствовать значению, например ___1
oR 1___
и т. д.