Ошибка при вставке в Visual Basic .Net - PullRequest
1 голос
/ 04 мая 2011

Я пытаюсь вставить свою базу данных и получаю сообщение об ошибке, я впервые в VB.Net, поэтому любая помощь будет принята с благодарностью.

Вот код:

Sub InsertGestion(ByVal s As Object, ByVal e As EventArgs)
          Dim Records() As String
          Records = Split(TBComment.Text, vbCrLf)

          Dim record As Integer
          For record = 0 To UBound(Records)             
                oracleCommand = New OracleCommand("INSERT INTO ACTFIL (ACACCTG,ACACCT,ACACTDTE,ACSEQNUM,ACACCODE,ACRCCODE,ACCIDNAM,ACCOMM) values ('1','" + TBNum.text + "','" + TBFecha.Text + "',"+ (record+1) +",'"+TBCodAc.text+"','"+TBCodRes.text+"','"+TBGestor.Text+"','"+record+"')", oracleConexion)
          Try
                oracleConexion.Open()
                oracleCommand.ExecuteNonQuery()

            Catch ex As Exception
                status.Text = "ERROR al insertar la gestión  " + ex.Message + "'"  '& ex.Message
            Finally
                oracleConexion.Close()
                Response.Redirect("gestiones.aspx?credito=" + Request.QueryString("credito") + "")
            End Try
          Next

        End Sub

и ошибка:

FormatException: Input string was not in a correct format.]
   Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat) +717374
   Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat) +114

[InvalidCastException: Conversion from string "INSERT INTO ACTFIL (ACACCTG,ACAC" to type 'Double' is not valid.]
   Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat) +717687
   ASP.marcador_gestiones_aspx.InsertGestion(Object s, EventArgs e) in G:\vta-paqV2\marcador\gestiones.aspx:62
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981

Первоначально это было обновление, и оно работало, я просто изменил OracleCommand.

Кстати, я заметил, что это не безопасный способ выполнения запросов, если кто-то может указать мне правильное направление, я был бы очень признателен.

1 Ответ

2 голосов
/ 04 мая 2011

Извлеките команду oracle из запроса и запустите на клиенте Oracle. Это даст вам знать, если что-то не так с вашей командой оракула. ​​

Во-вторых, вы можете использовать string.format для формирования запроса, используя оператор +.

Безопасный подход к обработке входных данных запроса - через входные параметры Вы можете проверить ниже ссылки.

http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleparameter.aspx

http://blogs.msdn.com/b/alextch/archive/2007/08/21/using-data-parameters-with-oracle-data-provider-for-net.aspx

Надеюсь, это поможет.

Спасибо!
Дананай

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