Присвоить значение строке в подразделе Б. чистые
Я не могу получить суб, над которым работаю, чтобы обновить строку со значением из базы данных. Я разработал СУБД, чтобы быть динамическим для типа объекта, и он работает со всеми другими объектами.
Это не возможно, чтобы обновить строки вроде этой?
Что я уже пробовал:
Я создал следующий СУБД, чтобы действовать в качестве наполнителя для различных объектов в моем приложении, основанном на базе данных sql.
Public Sub SQL_Object_Fill(sp As String, Params As Array, Values As Array, Objs As Array, Cols As Array, Optional type As String = Nothing) Dim cmd As New SqlCommand() Dim dr As SqlDataReader cmd.Connection = cn cmd.CommandText = sp cmd.CommandType = CommandType.StoredProcedure For Each Param As String In Params cmd.Parameters.Add(New SqlParameter(Param, Values(Array.IndexOf(Params, Param)))) Next cn.Open() dr = cmd.ExecuteReader() If dr.HasRows Then While (dr.Read()) For Each obj As Object In Objs If obj.GetType() Is GetType(System.String) Then obj = (dr(Cols(Array.IndexOf(Objs, obj)))).ToString() MsgBox(obj) ElseIf obj.GetType() Is GetType(System.Windows.Forms.ListBox) Then obj.Items.Add(dr(Cols(Array.IndexOf(Objs, obj)).ToString())) ElseIf obj.GetType() Is GetType(MetroFramework.Controls.MetroTextBox) Or obj.GetType() Is GetType(MetroFramework.Controls.MetroTile) Then obj.Text = (dr(Cols(Array.IndexOf(Objs, obj)).ToString())) End If Next End While End If cn.Close() End Sub
Это работало до сих пор, но сейчас я нахожусь на том этапе, когда мне нужно вызвать функцию, чтобы установить значение строки. Код ниже:
Dim Email As String = "" SQL_Object_Fill(sp:="[Misc].[Email_Fields]", Params:={"@id", "@Type"}, Values:={Main.id, Type}, Objs:={Email}, Cols:={"Email"}) MsgBox(Email)
Я поставил msgbox как в функцию, так и после того, как я ее вызываю. Он выдает ожидаемое значение из окна сообщения внутри функции, но не в том, которое появляется после вызова функции?
Что я делаю не так? Все остальные типы объектов работают отлично.
По какой-то причине это не присваивает моему объекту значение столбца в хранимой процедуре. Я положил коробку msg в
ZurdoDev
Если вы отладите код, то найдете ответ довольно быстро, я думаю.
Member 13033454
Спасибо, я посмотрю. Я думаю, что проблема заключается в том, что моя субмарина не может обновить входной параметр. Я пробовал byref, но это все еще ни к чему не привело. Я надеялся, что это обычная проблема, что строки не могут быть обновлены изнутри субмарин или что-то в этом роде.