是varchar2 大小为50,不知道为什么报错:非法的变量名/编号,请帮忙。

解决方案 »

  1.   

    what provider are you using? Microsoft's or Oracle's? if it is the former, use OracleType.VarChartry
    OracleCommand myCommand = new OracleCommand("INSERT INTO UFILE(ufiletitle, ufiletype) VALUES (:imgtitle, :imgtype)");
    myCommand.Connection = new OracleConnection("Data Source=OA;User ID=jack;Password=dian;Integrated Security=no;");
    myCommand.CommandType = CommandType.Text;     OracleParameter paramTitle = new OracleParameter("imgtitle", OracleType.VarChar, 50 );
    paramTitle.Value = imgtitle;
    myCommand.Parameters.Add( paramTitle); OracleParameter paramType = new OracleParameter( "imgtype", OracleType.VarChar, 50 );
    paramType.Value = imgtype;
    myCommand.Parameters.Add( paramType );
    myCommand.Connection.Open();
    myCommand.ExecuteOracleScalar();
    myCommand.Connection.Close();
      

  2.   

    oracle公司推荐使用的是varchar2数据类型,因为不管版本以后如何更新换代,数据类型varchar2始终不变的。
      

  3.   

    using System.Data.OracleClient;
    ......
    OracleCommand myCommand = new OracleCommand("INSERT INTO UFILE(ufiletitle, ufiletype, ufiledata) VALUES (@imgtitle, @imgtype, @imgdata)");
    myCommand.Connection = new OracleConnection("Data Source=OA;User ID=jack;Password=dian;Integrated Security=no;");
    myCommand.CommandType = CommandType.Text;     OracleParameter paramTitle = new OracleParameter("@imgtitle", OracleType.NVarChar, 50 );
    paramTitle.Value = imgtitle;
    myCommand.Parameters.Add( paramTitle); OracleParameter paramType = new OracleParameter( "@imgtype", OracleType.NVarChar, 50 );
    paramType.Value = imgtype;
    myCommand.Parameters.Add( paramType ); OracleParameter paramData = new OracleParameter( "@imgdata",  OracleType.LongVarChar );
    paramData.Value = imgdata;
    myCommand.Parameters.Add( paramData );
    myCommand.Connection.Open();
    myCommand.ExecuteOracleScalar();
    myCommand.Connection.Close();
    新的问题又出来了,麻烦再看一下。下面是错误报告:
    Server Error in '/MyOa' Application.
    --------------------------------------------------------------------------------Object must implement IConvertible. 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.InvalidCastException: Object must implement IConvertible.Source Error: 
    Line 76: 
    Line 77:  myCommand.Connection.Open();
    Line 78:  myCommand.ExecuteOracleScalar();
    Line 79:  myCommand.Connection.Close();
    Line 80:  // Response.ContentType = imgtype;
     Source File: e:\website\wwwroot\myoa\upload.aspx.cs    Line: 78 Stack Trace: 
    [InvalidCastException: Object must implement IConvertible.]
       System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +122
       System.Data.OracleClient.OracleParameter.SetCoercedValue(Type coerceType, Type noConvertType) +136
       System.Data.OracleClient.OracleParameterBinding.PrepareForBind(OracleConnection connection, Int32& offset) +138
       System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals) +1937
       System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor) +32
       System.Data.OracleClient.OracleCommand.ExecuteScalarInternal(Boolean needCLStype, Boolean needRowid, OciHandle& rowidDescriptor) +438
       System.Data.OracleClient.OracleCommand.ExecuteOracleScalar() +59
       MyOa.upload.Button1_Click(Object sender, EventArgs e) in e:\website\wwwroot\myoa\upload.aspx.cs:78
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain() +1277 
      

  4.   

    myCommand.ExecuteOracleScalar();
    ====>
    myCommand.ExecuteNonQuery();
      

  5.   

    整个程序是:
    Stream imgdatastream = File1.PostedFile.InputStream;
    int imgdatalen = File1.PostedFile.ContentLength;
    string imgtype = File1.PostedFile.ContentType;
    string imgtitle = TextBox1.Text;
    byte[] imgdata = new byte[imgdatalen];
    int n = imgdatastream.Read(imgdata,0,imgdatalen);
    OracleCommand myCommand = new OracleCommand("INSERT INTO UFILE(ufiletitle, ufiletype, ufiledata) VALUES (@imgtitle, @imgtype, @imgdata)");
    myCommand.Connection = new OracleConnection("Data Source=OA;User ID=jack;Password=dian;Integrated Security=no;");
    myCommand.CommandType = CommandType.Text;     OracleParameter paramTitle = new OracleParameter("@imgtitle", OracleType.NVarChar, 50 );
    paramTitle.Value = imgtitle;
    myCommand.Parameters.Add( paramTitle); OracleParameter paramType = new OracleParameter( "@imgtype", OracleType.NVarChar, 50 );
    paramType.Value = imgtype;
    myCommand.Parameters.Add( paramType ); OracleParameter paramData = new OracleParameter( "@imgdata",  OracleType.LongVarChar );
    paramData.Value = imgdata;
    myCommand.Parameters.Add( paramData );
    myCommand.Connection.Open();
    myCommand.ExecuteOracleScalar();
    myCommand.Connection.Close();help。弄了一个下午都不清楚原因在哪