powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужен совет знатоков VB.net - как прописывать запуск sql скрипта на выполнение в модуле
3 сообщений из 3, страница 1 из 1
Нужен совет знатоков VB.net - как прописывать запуск sql скрипта на выполнение в модуле
    #38577311
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужна подсказка знатоков VB.net

Есть форма, на которую выносится значение TB_MONTHS.Value из таблицы базы данных. Значение вытаскиваю при открытии формы следующим образом:


Код: vbnet
1.
2.
3.
4.
5.
Private Sub FChangeWeightLastUpdtWarning_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.BackColor = FORM_BACK_COLOR
        Me.MY_DOTNETAPPS_SETTINGSTableAdapter.Connection.ConnectionString = CONEXSTRING_SYSADM
        TB_MONTHS.Value = GetDataUtils.GetWeightWarning(Environment.UserName).ToString
End Sub




GetDataUtils – это модуль, где я объявил функцию, которая запускает select скрипт

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Shared Function GetWeightWarning(ByVal userName As String) As Integer
        Dim sql As String = "SELECT " & _
            "Value AS WEIGHT_LAST_UPDATE_WARINING " & _
            " FROM dbo.My_APPLICATION_DETAIL " & _
            "WHERE (Application_ID = 'KUDU_CRA') AND (Detail_ID = 'WEIGHT_LAST_UPDATE_WARINING') AND (User_ID = @UserId) "
        Dim params(0) As SqlParameter
        params(0) = New SqlParameter("@UserID", userName)
        GetWeightWarning = GetWeightMonthValue(sql, params)
    End Function



На форме сделал кнопку Save, чтобы записывать обратно в базу измененное значение TB_MONTHS.Value


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub ButtonSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSave.Click

        Try
            Me.Validate()
            Me.My_DOTNETAPPS_SETTINGSBindingSource.EndEdit()
            GetDataUtils.SaveWeightWarning(TB_MONTHS.Value, DATABASE_NAME)
            Me.Close()

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


В том же модуле GetDataUtils создал функцию, которая запускает скрипт апдейта таблицы базы данных с новым значением.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
    Public Shared Function SaveWeightWarning(ByVal months As String, ByVal MySelectedDB As String) As String
        Dim sql As String = "Update dbo.Application_Detail set Value=@months where Detail_ID='WEIGHT_LAST_UPDATE_WARNING' and Application_ID='MY_CRA'" & _
        " and USER_ID in (select USER_ID from dbo.Application_Detail where Application_ID='MY_CRA' and Detail_ID='DatabaseName' and VALUE=@MyDB)"
        Dim params(1) As SqlParameter
        params(0) = New SqlParameter("@months", months)
        params(1) = New SqlParameter("@MyDB", MySelectedDB)
        SaveWeightWarning = SaveDataValue(sql, params)
    End Function




Вот функция, которая выполняет непосредствоенно команду на извлечение данных (da.Fill(dt))

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 Protected Shared Function GetWeightMonthValue(ByVal SQL As String, ByVal params As SqlParameter()) As Integer
        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("My_Crating.My.MySettings.Cstring").ConnectionString)
        Dim da As SqlDataAdapter = New SqlDataAdapter()
        Dim dt As New DataTable
        Dim cmd As SqlCommand = conn.CreateCommand()
        cmd.CommandText = SQL
        cmd.Parameters.AddRange(params)
        da.SelectCommand = cmd
        conn.Open()
        da.Fill(dt)
        conn.Close()
        If dt.Rows.Count <> 0 Then
            GetWeightMonthValue = dt.Rows(0).Item(0).ToString
        Else : GetWeightMonthValue = "6"
        End If
    End Function



Но в функции, которая должна исполнить UPDATE команду – я не знаю как синтксически правильно запустить скрипт на выполнение, так как мне не надо делать da.Fill(dt), а надо нечто вроде Execute sql
Ибо после ввода нового значения в окно и нажатия Save ничего не происходит, так как SaveDataValue не до конца выполняет свою роль

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Protected Shared Function SaveDataValue(ByVal SQL As String, ByVal params As SqlParameter())
        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("My_Crating.My.MySettings.Cstring").ConnectionString)
        Dim da As SqlDataAdapter = New SqlDataAdapter()
        Dim cmd As SqlCommand = conn.CreateCommand()
        cmd.CommandText = SQL
        cmd.Parameters.AddRange(params)
        da.UpdateCommand = cmd
        conn.Open()
….. тут не понятно что писать, чтоб скрипт начал исполняться
        conn.Close()
    End Function
...
Рейтинг: 0 / 0
Нужен совет знатоков VB.net - как прописывать запуск sql скрипта на выполнение в модуле
    #38577351
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander2, нужно использовать метод ExecuteNonQuery() класса SqlCommand

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Protected Shared Sub SaveDataValue(ByVal SQL As String, ByVal params As SqlParameter())
	Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("My_Crating.My.MySettings.Cstring").ConnectionString)
		Dim cmd As SqlCommand = conn.CreateCommand()
		cmd.CommandText = SQL
		cmd.Parameters.AddRange(params)
		conn.Open()
		cmd.ExecuteNonQuery()
	End Using
End Sub
...
Рейтинг: 0 / 0
Нужен совет знатоков VB.net - как прописывать запуск sql скрипта на выполнение в модуле
    #38577363
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

да, спасибо, пока ждал тоже к этому пришли в поисках решения.
Не нужны вообще строки
Код: vbnet
1.
2.
3.
        Dim da As SqlDataAdapter = New SqlDataAdapter()
..
       da.UpdateCommand = cmd
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужен совет знатоков VB.net - как прописывать запуск sql скрипта на выполнение в модуле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]