2011-05-04 46 views
1

即时尝试插入到我的数据库和即时通讯接收错误,是我第一次与VB.Net所以任何帮助将不胜感激。在Visual Basic .Net上插入时出现错误.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。

顺便说一句,我注意到这不是一个安全的方式来执行查询,如果有人能指出我在正确的方向,我真的很感激它。

回答

2

从查询中提取oracle命令并在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

我希望这有助于。

谢谢!
Dhananjay

+0

谢谢,使用这些例子我完全重写了代码,现在它的工作和消毒。 :) – jhurtado 2011-05-04 02:51:16