Это действительно странная ситуация, в которой я не могу понять, в чем проблема.
У меня есть простое текстовое поле ASP и кнопка, при нажатии на кнопку у меня есть простая подпрограмма sqlconnection / commandвыполнить простое обновление базы данных на основе текстового значения текстового поля.
Код:
Using myConnection As SqlConnection = New sqlConnection(ConfigurationManager.ConnectionStrings("sqldbconn").ConnectionString)
myConnection.Open()
Dim strSQL As String = "insert into users(name) select @name"
Dim myCommand As New Data.SqlClient.SqlCommand(strSQL, myConnection)
myCommand.CommandType = Data.CommandType.Text
myCommand.Parameters.Add(create_Parameter("@name", Data.SqlDbType.VarChar, 50, Data.ParameterDirection.Input, txName.Text))
myCommand.ExecuteNonQuery()
myConnection.Close()
End Using
create_Parameter - это простая проверенная функция, которая выполняет 2-3 строки, которые обычно занимаетдля создания объекта параметра.
Проблема, с которой я столкнулся, заключается в том, что добавляемое в базу данных значение всегда представляет собой запятую, за которой следует текст, указанный в текстовом поле.
Я выполнил ответ.write перед вызовом ExecuteNonQuery для проверки как значения параметра, так и CommandText, которые в порядке и ожидаемо.Если я скопирую то, что ожидается, в окно запросов в студии управления, оно будет работать нормально .. users - простая таблица со столбцом varchar, без триггеров или ограничений и т. Д. В коде ASP нет других подпрограмм, кроме того, что я показал.
Так что теперь я застрял, что еще я могу сделать, чтобы выяснить, где / почему эта запятая добавляется в мой оператор вставки ???
Приветствия!