执行之后报错:Must declare the scalar variable "@FileName". 
请各位高手来看看是哪里错了 public static int InsertData(byte[] bytes, string fileName )
        {            string sql = "insert into dbo.FileInfo(FileName,FileInfo) values(@FileName,@FileInfo)";
            OleDbParameter[] ps = { new OleDbParameter("@FileName", fileName), new OleDbParameter("@FileInfo", bytes) };
           
            
                int result = CDBHelper.ExecuteSql(strConn, sql,ps);
                return result;
        }
        public static int ExecuteSql(string ConnectionString,string SQLString, params OleDbParameter[] cmdParms)
        {
            using (OleDbConnection connection = new OleDbConnection(ConnectionString))
            {
                using (OleDbCommand cmd = new OleDbCommand())
                {
                    try
                    {
                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                        int rows = cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                        return rows;
                    }
                    catch (OleDbException E)
                    {
                        throw new Exception(E.Message);
                    }
                }
            }
        }
        private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, string cmdText, OleDbParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (OleDbParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        }

解决方案 »

  1.   

    string sql = "insert into dbo.FileInfo(FileName,FileInfo) values(?,?)";
           
    OleDbCommand command = new OleDbCommand(sql, connection);
    command.Parameters.Add("?", OleDbType., 60).Value = "";

    OleDbParameter[] parameters = {
                        new OleDbParameter("@FileName", OleDbType.LongVarWChar,60),
                       };
                    parameters[0].Value = "";
      

  2.   

    把参数中的new OleDbParameter("@FileInfo", 中的@去掉,FileName前的类似
      

  3.   

    难道要把语句改成: OleDbParameter[] ps = { new OleDbParameter("FileName", fileName), new OleDbParameter("FileInfo", bytes) };